二分查找javascript

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>

  <script type="text/javascript">
    //二分查找要保证我们的数组是一个有序的.
    //思想是
    //首先把数组的中间这个数找出,然后和你要查询的数比较
    //① 你要查询的数比中间的数大. 则说明我们应当该数组的右边[后边]查询
    //② 你要查询的数比中间的数小 .则说明我们应当该数组的左边[前边]查询
    //③ 你要查询的数等于中间的数, 说明找到  
    var arr = [1,3,5,7,12,34,123,345];

    binarySearch(345,arr,0,arr.length-1);

    function binarySearch(findValue,array,minIndex,maxIndex){

        var midIndex=Math.round((minIndex+maxIndex)/2);

        if(minIndex>maxIndex){
            document.write('don\'t,find');
            return;
        }

        
        if(findValue>array[midIndex]){
            binarySearch(findValue,array,midIndex+1,maxIndex);
        }
        else if(findValue<array[midIndex]){
            binarySearch(findValue,array,minIndex,midIndex-1);
        }
        else{
            document.write("find it, result is "+midIndex);
        }
    }
  </script>
 </head>
 <body>
  
 </body>
</html>

 

posted @ 2013-09-04 11:39  ywl01  阅读(258)  评论(0编辑  收藏  举报