一、快速排序
和归并排序一样,快速排序也使用分而治之的方法,那我们看一下快速排序的过程:首先,选择一个值作为主元,也就是数组中间的值;然后,划分数组,划分的结果是比主元小的值都排在主元之前,比主元小的值都排在主元之后;最后,对于划分后的小数组继续重复之前的步骤,直至数组完成排序
二、js实现
function quickSort(arr) {
if (arr.length === 1 || arr.length === 0) return arr;
let leftArr = [];
let rightArr = [];
arr.slice(1).forEach((item) => {
if (item < arr[0]) {
leftArr.push(item);
} else {
rightArr.push(item);
}
});
leftArr = quickSort(leftArr);
rightArr = quickSort(rightArr);
leftArr.push(arr[0]);
return leftArr.concat(rightArr);
}