编辑代码

//测试希尔排序。 
let arr = [556,1,5,1,5,41,4,71,1,47,1,7,1,59,14,8,78]
Array.prototype.swap = function(originIndex,targetIndex) {
    let temp = this[originIndex];
    this[originIndex] = this[targetIndex];
    this[targetIndex] = temp;
}
function shellSort(arr) {
    for(let i = Math.floor((0 + arr.length -1) / 2); i >= 1; i = Math.floor(i /2)) {
        for (let j = i; j < arr.length; j++) {
            // console.log("j = " + j + "; i = " + i);
            // console.log(arr[j - i])
            while(arr[j - i] > arr[j]) {
                arr.swap(j - i, j);
                j = j - i;
            }
        }
    }
    return arr;
}
console.log(shellSort(arr));