Binary Search
by arunoda
JavaScript
function binarySearch(haystack, needle) {
let start = 0
let end = haystack.length -1
let iterations = 0
while(start <= end) {
iterations ++
const mid = Math.floor((start + end)/2)
const item = haystack[mid]
if (needle === item) return [mid, iterations]
if (needle > item) {
start = mid + 1
} else {
end = mid - 1
}
}
return [-1, iterations]
}
const data = [1, 2, 3, 5, 6, 7, 8, 9, 10]
console.log(binarySearch(data, 100))