希尔排序(JavaScript实现)

function shell(arr){
    var gap = Math.ceil(arr.length/2);
    while(gap!=1){
        for(var m=0;m<arr.length;m++){
            if(arr[m]>arr[m+gap]){
                var temp = arr[m];
                arr[m] = arr[m+gap];
                arr[m+gap] = temp;
            }
        }
        gap = Math.ceil(gap/2);
    }
    for(var m=0;m<arr.length;m++){
        if(arr[m]>arr[m+gap]){
            var temp = arr[m];
            arr[m] = arr[m+gap];
            arr[m+gap] = temp;
        }
    }
    return arr;
}

在研究希尔排序时,通过理解希尔排序的过程,自己写出的代码,测试了几组数据都能正确排序出来,不过我不太确定是不是完全正确的,所以想发出来请教一下大家这个代码是否有问题。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^