检索算法

image.png

image.png

image.png

顺序查找

 //  顺序查找
    function seqSearch(arr,data) {
        for(var i=0;imax){
                max = arr[i]
            }
        }
        return max;
    }

    //  查找最小值
    function findMix() {
        var min = arr[0];
        for(var i=0;i

自组织数据查找方法

 //  自组织数据查找方法--二八原则
    function seqSearch1(arr,data) {
        for(var i=0;i(arr.length*0.2)){
                swap(arr,i,i-1);
                return true;
            }
        }
        return -1;//  查找不到
    }

    var arr = [23,100,56,78,32];
    seqSearch1(arr,56)
    seqSearch1(arr,56)
    seqSearch1(arr,56)
    seqSearch1(arr,32)
    seqSearch1(arr,32)
    console.log(arr)// arr结果为:[23, 56, 32, 100, 78]

二分查找方法 前提是要对数组进行排好序

//  二分查找法  前提是要对数组进行排序
    function binSearch(arr, data) {
        var upperBound = arr.length-1;  //  上边界
        var lowerBound = 0;  //  下边界
        while(lowerBound<=upperBound){
            var mid = Math.floor((upperBound+lowerBound)/2);
            if(arr[mid]data){
                //  data大于中间值
                upperBound = mid-1;
            }else{
                //  data等于中间值
                return mid+1;
            }
        }
        return -1;  //  查找不到
    }

    var arr = [23,32,56,78,100];
    var result = binSearch(arr,56);
    console.log('查找56的位置在:',result)

你可能感兴趣的:(检索算法)