- 拿到数组后,选择第一个数,
- 然后把所有的数跟选择的数比较, 分成两队,左边是小的, 右边是大的
- 运用递归, 依次将分出的小数组继续排序
- 最后将每层的被选择的数,添加到数组中, 形成从小到大的排序后的新数组
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));