js二分法查询某个值的下标
采用递归的方法
代码如下
function mySort(arr1,arr2) {
//返回已经排序的数组
function binary_search(arr, key) {
let first =0,last=arr.length-1
let fn =(arr,key)=>{
if (first > last) {
return '无'
}
let mind = parseInt((first + last) / 2)
if (arr[mind] === key) {
return mind
} else if (arr[mind] > key) {
last = mind - 1
return fn(arr, key)
} else if (arr[mind] < key) {
first = mind + 1
return fn(arr,key)
}
}
return fn(arr,key)
};
var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];
var result = binary_search(arr,10);
alert(result);