JS算法——快速排序

原则:

  1. 先取出一个数作为“基准”。

  2. 分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基准”的左边。

  3. 再对左右区间重复1,2步,直到各区间只有一个数。

实现:

function quickSort (arr) {
  if (arr.length <= 1) return arr;
  const newArr  = [...arr];
  const cutPointIndex = Math.floor(newArr.length / 2);
  const cutPoint = newArr.splice(cutPointIndex, 1)[0];
  let left = [];
  let right = [];
  newArr.forEach((val)=>{
    if (val > cutPoint) {
      right.push(val)
    } else {
      left.push(val)
    }
  })
  return [...quickSort(left), cutPoint, ...quickSort(right)]
}

猜你喜欢

转载自www.cnblogs.com/liyongquan/p/9134634.html
今日推荐