반복문 구현
function binarySearchWithLoop(sortedArray, val) {
let left = 0;
let right = sortedArray.length - 1;
let mid;
while(left <= right) {
mid = Math.floor((left+right) / 2);
if(sortedArray[mid] == val) {
return mid;
} else if(sortedArray[mid] > val) {
right = mid-1;
} else {
left = mid+1;
}
}
return -1;
}
재귀 구현
function binarySearchWithRecursion(sortedArray, val) {
let left = 0;
let right = sortedArray.length - 1;
if(left > right) return -1;
let mid = Math.floor((left+right) / 2);
if(sortedArray[mid] == val) {
return mid;
} else if(sortedArray[mid] > val) {
binarySearchWithRecursion(sortedArray.slice(0, mid),val);
} else {
binarySearchWithRecursion(sortedArray.slice(mid+1),val);
}
return -1;
}'알고리즘&코테' 카테고리의 다른 글
| [알고리즘] JS 순열, 조합 (0) | 2024.11.18 |
|---|---|
| [알고리즘] 배열 회전 (0) | 2024.11.15 |
| JS 알고리즘 공부 5회차 with. BaaaaaaaarkingDog (0) | 2024.10.23 |
| JS 알고리즘 공부 4회차 with. BaaaaaaaarkingDog (0) | 2024.10.22 |
| JS 알고리즘 공부 3회차 with. BaaaaaaaarkingDog (0) | 2024.04.08 |