快速排序

541 阅读1分钟
  1. 拿到数组后,选择第一个数,
  2. 然后把所有的数跟选择的数比较, 分成两队,左边是小的, 右边是大的
  3. 运用递归, 依次将分出的小数组继续排序
  4. 最后将每层的被选择的数,添加到数组中, 形成从小到大的排序后的新数组
function quickSort (arr) {
    if (arr == null || arr.length == 0) return [];
    var leader = arr[0];
    var leftBox = [];
    var rightBox = [];
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] < leader) leftBox.push(arr[i]);
        else rightBox.push(arr[i]);
    }
    leftBox = quickSort(leftBox);
    rightBox = quickSort(rightBox);
    leftBox.push(leader);
    return leftBox.concat(rightBox);
}
let sortArr = [5, 3, 1, 2, 9, 7, 6, 4];
console.log(quickSort(sortArr));