js二分查找

var arr = []
    // function random(s,e){
    //     return Math.floor(Math.random()*(e-s) + s)
    // }
    for(var i = 0;i<10000;i++){
        arr.push(++i)
    }
    function a(arr,num){
        if(arr.length === 0)return ;
        var low = 0;
        var high = arr.length - 1;
        while(low <= high){
            var mid = Math.floor((low+high)/2);
            if(arr[mid] === num){
                return mid;
            }else if(arr[mid] < num){
                high = mid -1;
            }else{
                low = mid +1;
            }
            return mid;
        }
        return -1
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 二分查找法是一种算法,其输入是一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回其位置,否则返回nul...
    ER_PM阅读 453评论 0 0
  • 1.递归实现function binarySearch(data, dest, start, end){ var ...
    Bookish倩宝阅读 209评论 0 0
  • 假如我们现在有个二维数组,数据量比较大,规律是: 每一行都是增加的,每一列也是增加的,即后面的数比前面的大。如下面...
    下一站深圳阅读 1,156评论 0 2
  • 有序数组 递归实现 非递归实现
    阿龙哟阅读 743评论 0 2
  • 所谓二分法查找法,也就是折半查找,它是一种在有序数组查找特定元素的搜索算法。 参考《前端程序员面试秘籍》 思想:从...
    isSunny阅读 5,564评论 0 2