zoukankan      html  css  js  c++  java
  • javascript实现二分查找

    今天做了道笔试题,要求是实现二分查找,当然不难,想了一下,因为没有要求语言就用javascript实现了。当然,期间还是出来了一点问题。

    ok,上代码

    /*
    * 稳定二分查找
    * 作者:吴伟欣
    * */
    
     
    
    //备注:这是javascript语言的实现版本
    function binarySearch(arr,num)
    {
        var start = 0,end = arr.length - 1,mid = 0;
        while(start<end)
        {
            mid = parseInt((start+end)/2);
            if(num>arr[mid])
            {
                start = mid+1;
            }else
            {
                end = mid;
            }
        }
        if(arr[mid] == num)
        {
            return mid;
        }
        return -1;
    }
    //测试代码
    var a = [2,3,4,5,9,10,11,15,17,23,90];
    alert(binarySearch(a,11));

      红色部分是比较容易出错的地方,有时候忘记加一会陷入死循环。当然,了解过二分查找的应该都知道这种版本不管是什么情况都会到最后才找到正确的那个,虽然效率上比另外一种高,但是最好和最坏都很稳定。我说的另外一种是三个判断的那种,还有斐波那契查找。

  • 相关阅读:
    Day 18
    Day 17
    Day 16
    Day 15
    Day 14
    Day 13
    Day 12
    Day 11
    Day 10
    《ES6标准入门》(阮一峰)--2.let 和 const 命令
  • 原文地址:https://www.cnblogs.com/wuweixin/p/5313011.html
Copyright © 2011-2022 走看看