写了一个数组大小排序自己感觉逻辑有点绕,求高手帮看看逻辑有没有问题?

function shellSort(arr){
    var i,j,k,gap,temp;
    gap=Math.floor(arr.length/2);
    while(gap>0){
        for(i=0;i<gap;++i){
            for(j=i+gap;j<arr.length;j+=gap){
                temp=arr[j];
                for(k=j-gap;k>=0&&temp<arr[k];k-=gap){
                        arr[k+gap]=arr[k];                          
                }
                arr[k+gap]=temp;       
            }
        }
		 gap=Math.floor(gap/2);
    }
    return arr;       
}


winner4265975
浏览 1374回答 1
1回答

ziom

什么鬼,一个排序至于写这么复杂吗,套这么多层循环,我运行了一下,最后返回的还是原数组 - -
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript