l and r, initialized to 0 and the length of the array respectively.while loop to repeatedly narrow down the search subarray, using Math.floor() to cut it in half.-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;
};
binarySearch([1, 2, 3, 4, 5], 1); // 0 binarySearch([1, 2, 3, 4, 5], 5); // 4 binarySearch([1, 2, 3, 4, 5], 6); // -1
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️