一、二分查找
二、归并排序
三、冒泡排序
四、希尔排序--间隔对比--固定间隔和动态间隔

functtion shellSort(arr){
    let len=arr.length;
    let gap=Math.floor(len/2);
    while(gap!=0){
        for(var i=gap;i<len;i++){
             var temp=arr[i],j
             for(j=i-gap;j>=0&&temp<arr[j];j-=gap){
                arr[j+gap]=arr[j]
             }
             arr[j+gap]=temp
        }
        gap=Math.floor(gap/2)
    }
    return arr
}
动态间隔版
function shellSort(arr){
    var len=arr.length,temp,gap=1;
    while(gap<len/3){gap=gap*3+1}
    while(gap!=0){
        console.log('gap值',gap)
        for(var i=gap;i<len;i++){
            console.log('第一层循环',i)
            temp=arr[i]
            for(var j=i-gap;j>=0&&arr[j]>temp;j-=gap){
                console.log('第二层循环',j,arr[j],temp)
                arr[j+gap]=arr[j]
            }
            arr[j+gap]=temp
            console.log('第二层循环完毕',arr)
        }
        gap=Math.floor(gap/3)
        console.log('第一层循环完毕arr',arr,gap)
    }
    return arr
}

五、插入排序--间隔为1的希尔排序--图https://www.cnblogs.com/cc-freiheit/p/10983395.html

function insertSort(arr){
    let len=arr.length
    for(var i=1;i<len;i++){
        var temp=arr[i]
        for(var j=i-1;j>=0&&arr[j]>temp;j-=1){
            arr[j+1]=arr[j]
        }
        arr[j+1]=temp
    }
    return arr
}



小黄人111
19 声望2 粉丝