Skip to main content

Binary Search

Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1. You must write an algorithm with O(log n) runtime complexity.

Example 1:
Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4

Example 2:
Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
function binarySearch(array, target) {
let left = 0;
let right = array.length - 1;

while (left <= right) {
let middle = Math.floor((right + left) / 2);

if (array[middle] === target) {
return middle;
}

if (array[middle] < target) {
left = middle + 1;
} else {
right = middle - 1;
}
}

return -1;
}