/**
* 使用二分法时,首要条件是数组本身是排序的.
*/
function binarySearch(arr, value){
var startIndex = 0,
endIndex = arr.length - 1,
middleIndex = Math.floor((endIndex+startIndex)/2);
while(arr[middleIndex]!= value && startIndex < endIndex){
if(value < arr[middleIndex]) endIndex = middleIndex - 1;
else if(value > arr[middleIndex]) startIndex = middleIndex + 1;
middleIndex = Math.floor((endIndex+startIndex)/2);
}
return arr[middleIndex] != value ? -1 : middleIndex;
}
二分法_JavaScript版
最新推荐文章于 2020-12-22 13:40:35 发布