function quickSort(array) {
if (array.length <= 1) {
return array;
}
const midIndex = Math.floor(array.length / 2);
//先找出一个值(一般取中间位置的值),并从原数组中排除该值
const mid = array.splice(midIndex, 1)[0];
const left = [];
const right = [];
//遍历排除该值的数组
//比该值小的放到左边,比该值大的放到该值右边
for (let i = 0; i < array.length; i++) {
if (array[i] < mid) {
left.push(array[i]);
} else {
right.push(array[i]);
}
}
//分别递归比该值小的左数组和比该值大的右数组
//最终根据顺序拼接成新数组
return quickSort(left).concat([mid], quickSort(right));
}