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);
http://www.chhblog.com/Web/ArticleView.aspx?ArticleID=190