快速排序:
1.从数组中选择一个元素作为基准点。
2.排序数组,所有比基准值小的元素摆放在左边,而大于基准值的摆放在右边。每次分割结束以后基准值会插入到中间去。
3.最后利用递归,将摆放在左边的数组和右边的数组在进行一次上述的1和2操作。
function quickSort(arr) {
if (arr.length <= 1) {
return arr
}
const left = [];
const right = [];
const middleIndex = Math.floor(arr.length / 2);
const middleElement = arr.find((_, idx) => idx === middleIndex);
arr.forEach(x => {
if (x < middleElement) {
left.push(x);
} else {
right.push(x);
}
});
return quickSort(left).concat(middleElement, quickSort(right));
}