首页 > 编程语言 > 详细

javascript实现二分查找

时间:2016-03-23 21:46:40      阅读:144      评论:0      收藏:0      [点我收藏+]

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

ok,上代码

 /*
    * 稳定二分查找
    * 作者:吴伟欣
    * */
    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));

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

javascript实现二分查找

原文:http://www.cnblogs.com/wuweixin/p/5313011.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!