- 二分法(折半查找)
/折半查找
console.time('binary');
let a = [];
for (let i=0;i<10000;i++){
a[i]=i+1;
}
let low=0,mid=parseInt((a.length-1)/2),hight=a.length-1,key =5555;
while (1){
if(key>a[mid]){
low = mid+1;
mid = parseInt((low+hight)/2);
}else if(key<a[mid]){
hight = mid-1;
mid = parseInt((low+hight)/2);
}else if(a[mid]==key){
console.log(a[mid]);
break;
}
}
// console.log(a[1])
// console.log('low '+low,'mid '+mid,'hight '+hight,'key '+key);
console.timeEnd('binary')