var arr = [-34, 1, 3, 4, 5, 8, 34, 45, 65, 87];
//递归方式
function binarySearch(data,dest,start,end ){
var end=end || data.length-1;
var start=start || 0;
m=Math.floor((end+start)/2);
if(data[m]==dest){
return m;
}
if(dest<data[m]){
return binarySearch(data,dest,0,m-1);
}else{
return binarySearch(data,dest,m+1,end);
}
return false;
}
var result=binarySearch(arr,4);
console.log(result);
//非递归方式
function binarySearch2(data,dest){
var h = data.length - 1,
j = 0;
while (j <= h){
var m=Math.floor((h+j)/2);
if(data[m]==dest){
return m;
}
if(dest>data[m]){
j=m+1;
}else{
h=m-1;
}
}
return false;
}
console.log(binarySearch2(arr,8));