快速排序思想
1.选取一个flag节点作为一个标准,定义左右子树组。
2.讲数组的元素与flag进行比较,小于标准进入左数组,大于标准进入右数组。
3.创造一个递归的条件,讲左右子数组进行递归。
算法模版
function quickSort(arr) {
// 停止条件
if (arr.length <= 1) return arr;
// 确定锚点元素
const index = parseInt(arr.length / 2);
const flagValue = arr[index];
const leftArr = [];
const rightArr = [];
// 获取左右子集合
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
if (i === index) continue;
if (item <= flagValue) leftArr.push(item);
else rightArr.push(item);
}
// 递归查询子集合
// return [...quickSort(leftArr), flagValue, ...quickSort(rightArr)];
return quickSort(leftArr).concat(flagValue,quickSort(rightArr))
}