快速排序

64 阅读1分钟

快速排序

  1. 取一个基准值
  2. 根据基准值分出来 小于基准值的数组 和 大于基准值的数组
  3. 进入递归
  4. 当递归的数组小于2个时,跳出递归,将这个数组返回
  5. 最后将每个数组拼接在一起

image.png

代码实现:

function quickSort(arr) {
  // 跳出递归的基准条件
  if(arr.length < 2) return arr;
  // 基准值选为数组的第一项
  const goal = arr[0];
  const minArr = arr.slice(1).filter(item => item <= goal);
  const maxArr = arr.slice(1).filter(item => item > goal);
  return quickSort(minArr).concat(goal).concat(quickSort(maxArr));
}