function xier(arr) {
let len = arr.length;//数组长度
let willinsertValue;
let gap = len;//增量
//trunc取整 gap = 4
while (gap > 0 && (gap = Math.trunc(gap / 2))) {
//对每一个分组插入排序 i=4,5
for (let i = gap; i < len; i++) {
//将要插入的值
willinsertValue = arr[i]
// 0,1
let j = i - gap;
//arr[1]>arr[5]
while (j > 0 && arr[j] > willinsertValue) {
//前后调换位置
arr[j + gap] = arr[j]
//-3
j -= gap
}
arr[j + gap] = willinsertValue
}
return arr
}
}
console.log(xier(arr));