三、快速排序
2019-10-31 本文已影响0人
lucky_果果
思想:(1)找一个数组的基准点,从数组中取出,改变原数组(用splice实现)
(2)生成left和right两个数组,小于基准值push到left,大于push到right,利用concat拼接left、基准值、right
(3)对left和right分别递归调用
代码截图:

代码:
function quickSort(arr){
arr = arr.concat();
if(arr.length<=1) return arr;
let base = arr.splice(0,1);
let left = [];
let right = [];
arr.forEach(element => {
if(element<base){
left.push(element);
}else{
right.push(element);
}
});
return quickSort(left).concat(base,quickSort(right))
}
console.log(quickSort([6,7,1,2,23,12,1,4,2]));