分析
快速排序采用的是分治策略。
对一项复杂的任务,进行拆分成不同的小任务。直至到达基线条件,终止拆分。
每次递归操作,都会让任务更靠近基线条件。
代码实现
function quickSort(arr){
if(arr.length <2){
return arr
}else{
// pivot获取数组的第一个元素,并且要在原数组中移除
let left = [], right=[], pivot = arr.splice(0,1)[0];
for(let i=0; i< arr.length; i++){
if(arr[i]<pivot){
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return [...quickSort(left), pivot, ...quickSort(right)]
}
}