二分查找对待查列表的要求
1、必须采用顺序存储结构
2、必须按关键字大小有序排列
算法思想
1、将中间位置的数与待查关键字比较,两者相等,查找成功,否则利用中间位置将列表分成前、后两个子列表;
2、如果中间位置的数大于待查关键字,则进一步查找前一子列表;
3、否则查找后一子列表。
function binSearch(arr,key){
var low = 0,high = arr.length;
while(low <= high){
var mid = (low + high) >> 1;
if(key == arr[mid]){
return mid;
}
if(key > arr[mid]){
low = mid + 1;
} else{
high = mid - 1;
}
}
return 0;
}