const binarySearch = (arr, value) => {
let a = 0
let b = arr.length - 1
while (a <= b) {
let c= Math.floor((a + b) / 2)
if (arr[c] == value) {
return c
} else if (arr[c] > value) {
b = c - 1
} else{
a = c + 1
}
}
return false
}
递归实现
const binarySearch = (arr, value,a,b) => {
if(a>b)return false
let c=Math.floor((a+b)/2)
if(arr[c]==value){
return c
}else if(arr[c]>value){
return binarySearch(arr,value,a,c-1)
}else{
return binarySearch(arr,value,c+1,b)
}
}
js会溢栈