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));

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

  • 相关阅读:
    store.js
    ## $.each() 与.each()的区别
    创建新的option
    js 一个程序运行的时间计算
    HTML5之FileReader的使用(转)
    js 队列
    js 栈(进制转换)
    原生js实现二级联动
    原生js实现三级联动
    工具安装-Mac 卸载python3
  • 原文地址:https://www.cnblogs.com/wuweixin/p/5313011.html
Copyright © 2011-2022 走看看