日期:2014-05-16 浏览次数:20335 次
var arr=[1,3,5,6,8,10];//需要进行二分查找的数组必须保证是从小到大顺序排列的 function binarySearch(arr,findVal,leftIndex,rightIndex) { //找不到时跳出递归 if(leftIndex>rightIndex) { document.write("未找到!"); return; } var midIndex=Math.floor((leftIndex+rightIndex)/2); var midVal=arr[midIndex]; if(midVal>findVal) { binarySearch(arr,findVal,leftIndex,midIndex-1); } else if(midVal<findVal) { binarySearch(arr,findVal,midIndex+1,rightIndex); } else//相等时 { document.write("找到结果,位于数组的第"+(midIndex+1)+"个位置。"); return; } } //测试一下 binarySearch(arr,6,0,arr.length-1);