//希尔排序 class ArrayList { constructor () { this.array = [] } insert (data) { return this.array.push(data) } shellSort () { let length = this.array.length let gap = Math.floor(length / 2) while (gap >= 1) { for (let i = 0; i < length - gap; i++) { let j = i + gap let temp = this.array[j] while (j > gap - 1 && temp < this.array[j - gap]) { this.array[j] = this.array[j - gap] j -= gap } this.array[j] = temp } gap = Math.floor(gap / 2) } } } let arr = new ArrayList() arr.insert(9) arr.insert(5) arr.insert(8) arr.insert(0) arr.insert(1) arr.insert(6) arr.insert(4) arr.insert(7) arr.insert(3) arr.insert(2)
原文:https://www.cnblogs.com/JunLan/p/12368500.html