递归思路:
    image.png

    阮一峰写法
    image.png

    1. let quickSort = (arr) => {
    2. if (arr.length <= 1) {
    3. return arr;
    4. }
    5. let pivotIndex = Math.floor(arr.length / 2);
    6. let pivot = arr.splice(pivotIndex, 1)[0];
    7. let left = [];
    8. let right = [];
    9. for (let i = 0; i < arr.length; i++) {
    10. if (arr[i] < pivot) {
    11. left.push(arr[i]);
    12. } else {
    13. right.push(arr[i]);
    14. }
    15. }
    16. return quickSort(left).concat([pivot], quickSort(right));
    17. };