알고리즘/basic
binary search
자곰
2022. 2. 8. 08:49
정렬된 배열에서 주어진 요소의 인덱스를 찾는 알고리즘!
1. 왼쪽과 오른쪽 탐색 경계 l(left)과 r(right)을 각각 0과 끝 인덱스로 초기화하고 배열의 길이를 선언합니다.
2. while 루프를 사용하여 검색 하위 배열의 범위를 반복적으로 좁히고, Math.floor()를 사용하여 반으로 자르십시오.
3. 발견되면 요소의 인덱스를 반환하고, 그렇지 않으면 -1을 반환합니다.
참고: 배열의 중복 값은 고려하지 않습니다.
const binarySearch = (arr, item) => {
let l = 0,
r = arr.length - 1;
while (l <= r) {
const mid = Math.floor((l + r) / 2);
const guess = arr[mid];
if (guess === item) return mid;
if (guess > item) r = mid - 1;
else l = mid + 1;
}
return -1;
};