# 快速排序

  • 时间复杂度: O(nlogN)
  • 空间复杂度: O(n)
// 快速排序

var initArr = [9,8,7,6,5,4,3,2, 12,20,40];

function quickSort(arr) {
    
    if(arr.length === 0) {
        return []
    }

    if (arr.length === 1) {
        return arr;
    }

    var targetNum = arr[0];

    var leftArr = [];
    var rightArr = [];

    for (var i = 1; i < arr.length; i ++) {
        var num = arr[i]
        if (num < targetNum) {
            leftArr.push(num);
        } else {
            rightArr.push(num);
        }
    }

    var newArr = quickSort(leftArr).concat(targetNum, quickSort(rightArr));
    return newArr;
}

console.log(quickSort(initArr))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
上次更新: 2021/2/24 上午10:55:31