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