dntjd292   2년 전

이진탐색을 구현하여 풀어봤는데... 시간초과가 발생하네요....

어떤 부분이 문제 일까요..ㅜㅜ

미흡한 제가 보기엔 시간복잡도 O(N * log N)인데 말이죠...

djm03178   2년 전

11번째 줄과 같이 vector를 값으로 받으면 함수가 호출될 때마다 기존 vector의 내용이 전부 복사되어 새로운 vector가 만들어져 전달됩니다. 이분 탐색에는 시간을 O(logN)번만 쓰는데, 함수 호출을 O(logN)번 하면서 매번 O(N)의 벡터가 복사된다면 시간은 이분 탐색 한 번에 O(NlogN)이 되고, 원소가 O(N)개이므로 총 시간 복잡도는 O(N^2logN)이 됩니다.

참조형으로 바꾸면 통과됩니다.

dntjd292   2년 전

아.. 함수가 호출되면서 N log N 이 되는군요... 기초가 중요하다는걸 다시한번 알고 갑니다.. 

앞으론 참조나 포인터도 한번 써 봐야겠네요..ㅎㅎ 답변 감사합니다!

댓글을 작성하려면 로그인해야 합니다.