/**
* @Desc 快速排序
* 分区:在数组中任意选择一个 ‘基准’,所有比基准值小的放到基准值前边,比基准值大的放在基准值后边
* 递归的对基准前后的数组 进行 “分区”
*/
Array.prototype.quickSort = function() {
const rec = function(arr) {
if (arr.length <= 1) {
return arr;
}
const left = [];
const right = [];
const curr = arr[0];
for (let i=1;i<arr.length;i++) {
if (arr[i] > curr) {
right.push(arr[i]);
} else {
left.push(arr[i]);
}
}
return [...rec(left), curr, ...rec(right)];
}
let res = rec(this);
res.forEach((n,i) => this[i] = n);
}
算法系列:4. 快速排序
最新推荐文章于 2022-02-08 16:42:26 发布