const shellSort = function(arr) { const list = arr.slice() let len = list.length let gap = ~~(len / 2) // 根据间隔划分出小数组 for (; gap > 0; gap = ~~(gap / 2)) { // 内部是插入排序 for (let i = gap; i < len; i++) { for (let j = i; j > 0; j -= gap) { if (list[j] <= list[j - gap]) { [list[j], list[j - gap]] =[list[j - gap], list[j]] } } } } return list } const arr = [6,4,7,3,8,2,9,1,5] console.log(shellSort(arr))