Created
April 8, 2026 15:28
-
-
Save petergi/057768eeaebe588e2d7d28b16bbe1f30 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment