//测试希尔排序。
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));