//希尔排序
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)