shenwenjie 2020-02-26
//快速排序 class ArrayList { constructor () { this.array = [] } insert (data) { return this.array.push(data) } quickSort () { this.array = this.quick(this.array) } //辅助函数 quick (arr) { let length = arr.length if (length <= 1) return arr let pivotValue = arr.splice(Math.floor(length / 2), 1)[0] let leftArr = [] let rightArr = [] for (let i = 0; i < arr.length; i++) { if (arr[i] < pivotValue) leftArr.push(arr[i]) else rightArr.push(arr[i]) } return this.quick(leftArr).concat(pivotValue, this.quick(rightArr)) } } 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)