728x90
[17, 28, 43, 67, 88, 92, 100]
이런식으로 있는 배열에서 43을 찾으려면
1. 가운데 값인 67과 43 비교
2. 43은 67보다 작으니 왼쪽 배열
3. [17, 28, 43] 에서 가운데 값은 28이니
4. 28과 43 비교
5. 43은 28보다 크니까 오른쪽 배열
6. [43] 찾음
const binarySearch = function (arr, target) {
let low = 0;
let high = arr.length - 1;
let mid;
while(low<=high) {
mid = parseInt((low + high) / 2);
if(arr[mid] === target) return mid;
else if(arr[mid] > target) high = mid - 1;
else low = mid + 1;
}
return -1;
};
let output = binarySearch([0, 1, 2, 3, 4, 5], 1);
console.log(output); // --> 2
output = binarySearch([4, 5, 6, 9], 100);
console.log(output); // --> -1반응형
'BEB > algorithm' 카테고리의 다른 글
| toy 12 treeBFS (0) | 2022.11.10 |
|---|---|
| 11 powerSet (0) | 2022.11.09 |
| Toy8 - largestProductOfThree (0) | 2022.11.04 |
| 백트래킹 (0) | 2022.11.03 |
| Toy07 - tree dfs (0) | 2022.11.02 |
댓글