배열의 중간 값을 선택하여 찾고자 하는 값과 비교한다.
만약, 중간 값이 찾고자 하는 값보다 크면 중간 값 왼쪽 부분에서 탐색을 진행하고
값보다 작으면 중간 값 오른쪽 부분에서 탐색을 진행한다.
중간 값이 찾고자 하는 값보다 클 경우
: 중간 값에 1을 빼서 왼쪽 절반을 탐색한다.if (arr[mid] > key) {
high = mid - 1;
}
중간 값이 찾고자 하는 값보다 작을 경우
: 중간 값에 1을 더해서 오른쪽 절반을 탐색한다.if (arr[mid] < key) {
low = mid + 1;
}
문자열 배열의 경우 이분 탐색을 사용하는 경우 Arrays.binarySearch()
함수를 이용할 수 있다.
public static int binarySearch(Object[] a, Object key)
Object[] a
: 탐색하고자 하는 배열Object key
: 배열에서 찾으려는 값