Files
30-seconds-of-code/snippets/js/s/binary-search.md
2023-05-07 16:07:29 +03:00

1.0 KiB

title, type, language, tags, author, cover, dateModified
title type language tags author cover dateModified
Binary search snippet javascript
algorithm
array
chalarangelo zen-indoors 2020-12-29T13:06:47+02:00

Finds the index of a given element in a sorted array using the binary search algorithm.

  • Declare the left and right search boundaries, l and r, initialized to 0 and the length of the array respectively.
  • Use a while loop to repeatedly narrow down the search subarray, using Math.floor() to cut it in half.
  • Return the index of the element if found, otherwise return -1.
  • Note: Does not account for duplicate values in the array.
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