2分查找

189 阅读1分钟

2分查找 有序数据

2分查找也称折半查找,2分查找算法就是不断将数组进行对半分割,每次拿中间元素和goal进行比较。

    function arryFn (arry,num){
        var low = 0;//设置一个最低值
        var height = (arry.length)-1;//设置一个最高值
        while (low <= height){
            var mid = parseInt((low + height)/2);//设置一个中间值
            var midVale = arry[mid];//中间值索引所在的值
            if(midVale == num){
                return mid;
            }else if(midVale < num){
                low = mid;
            }else{
                height = mid;
            }
        }
    }
    var ary = [10,11,12,14,15,16,17,19,20,21,22,24];
    console.log(arryFn(ary,15));//4