SOURCE

/*
首先从序列中选取一个数作为基准数
将比这个数大的数全部放到它的右边,把小于或者等于它的数全部放到它的左边 (一次快排 partition)
然后分别对基准的左右两边重复以上的操作,直到数组完全排序
*/
function quickSort (arr) {
  if (arr.length < 2) {
    return arr;
  }
  var left = [];
  var right = [];
  var voit = arr[0];
  for (let index = 1; index < arr.length; index++) {
    if (arr[index] > voit) {
      right.push(arr[index]);
    }else{
      left.push(arr[index]);
    }
  }
  return quickSort(left).concat([voit],quickSort(right));
}
var arr = [4, 7, 3, 5, 6, 2, 8, 1];
console.log(quickSort(arr));
console 命令行工具 X clear

                    
>
console