日期:2014-05-16  浏览次数:20335 次

二分查找原理问题
JScript code

             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