/**
* 希尔排序
* 时间复杂度 平均O(nlogn)
*
* @param {any} arr
* @returns
*
* @memberof sort
*/
sort2(arr) {
for (let gap = Math.floor(arr.length/2);gap > 0;gap=Math.floor(gap/2)) {
for(let i = gap;i < arr.length;i++) {
let j = i;
let temp = arr[j];
for(;j >= gap;j -= gap) {
if(arr[j-gap] > temp) {
arr[j] = arr[j-gap];
}else{
break;
}
}
arr[j] = temp;
}
}
return arr;
}