es快速排序算法

基于网上的代码参考,以下是一个自己改了点的递归版本

function quickSort(arr) {
  if (arr.length < 2) { return arr; }
  if (arr.length === 2) { return arr[0] > arr[1] ? [arr[1], arr[0]] : arr; }
  const middle = arr[0]; // 中值
  const left = [];
  const right = [];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < middle) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat(middle, quickSort(right));
}

关于 admin

所有重要的进步,都来源于失败和挫折的经历
此条目发表在 ecmascript 分类目录。将固定链接加入收藏夹。