내가 찾고자 하는값을 중앙값과 비교한다. 중앙값보다 크면 탐색범위를 오른쪽 반토막,
중앙값보다 작으면 탐색범위를 왼쪽 반토막으로 줄여나가면서 계속 반복한다, left가 right보다 크면 끝
1번 하면 전체 데이터 범위의 1/2, 2번하면 1/4, 3번하면 1/8.... x번하면 (1/2)^x 이 된다
전체 데이터가 n개이고 x번 서치하면 n(1/2)^x가 되는데, 이게 1이 되면 그때 찾은거니까 x를 구하면
x = logN이라는 훌륭한 성능을 갖게된다( 원래는 log2N인데 O(log2N) 은 O(logN)과 같으니까)
그리고 스탠다드 라이브러리에도 있다 원형은 다음과 같다
이건 친절하게 그 값의 주소를 알려준다(근데 왜 리턴이 보이드지 @.@???)
'알고리즘' 카테고리의 다른 글
위상정렬 (0) | 2013.12.04 |
---|---|
이진탐색트리 Binary Search Tree! (0) | 2013.08.03 |
quick sort (0) | 2013.08.01 |
버블정렬, 삽입정렬 (0) | 2013.07.31 |
꿈틀꿈틀 (0) | 2013.07.30 |