排序算法---希尔排序

128 阅读1分钟

原理:每次以一个中间数进行分组,然后组内进行插入排序,最终的分组都是1.

var arr=[1,4,22,7,99,203,3,5,2,4,4];
function shell(arr){
    for(var cap=Math.floor(arr.length/2);cap>0;cap=Math.floor(cap/2)){
        for(var i=cap;i<arr.length;i++){
            for(var j=i-cap;j>=0&&arr[j]>arr[j+1];j-=cap){
                var temp=arr[j+1];
                arr[j+1]=arr[j];
                arr[j]=temp;
            }
        }
    }
}

shell(arr);
console.log(arr);