이분 탐색(Binary Search)
이분 탐색(Binary Search)
-
이진 탐색 혹은 이분 탐색 이라고 부름
-
자료 구조에서 특정 값을 찾을 때, 탐색 범위를 절반씩 나눠가면서 해당 값을 찾아가는 것
-
탐색 범위를 두 부분으로 분할하면서 찾는 방식
-
일반적인 탐색 알고리즘 보다 빠름
시간 복잡도
-
전체 탐색 : O(N)
-
이분 탐색 : O(logN)
진행 순서
-
정렬
-
left, right 값 설정(보통 left 에 찾으려는 최소값, right에 최대값)
-
mid = (left + right) / 2 로 mid 값 설정
-
구할값이 mid 보다 크면 left = mid + 1
-
구할값이 mid 보다 작으면 right = mid - 1
-
right < left 가 될때까지 반복
-
결과를 찾은 경우, 찾은것을 반환. 결과를 찾지 못한 경우에는 -1을 반환한다.
출처 : https://github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Algorithm/%EC%9D%B4%EB%B6%84%20%ED%83%90%EC%83%89(Binary%20Search).md