• JS算法--快速排序


    描述:

    快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用。快速排序是一种既不浪费空间又可以快一点的排序算法。

    步骤:

    • 先从数列中取出一个数作为“基准”。
    • 分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基准”的左边。
    • 再对左右区间重复第二步,直到各区间只有一个数。

    实现:

    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)]
    }

     参考:https://segmentfault.com/a/1190000009426421

  • 相关阅读:
    ASP.NET Core 6.0 添加 JWT 认证和授权
    mumu模拟器pin码忘记,如何找回
    4.18 进程调度模拟算法
    解决ssh $host jps bash: jps: command not found 问题
    7
    6
    1
    5
    3
    使用loadrunner运行中问题(无代码生成解决方法)
  • 原文地址:https://www.cnblogs.com/liyongquan/p/9134634.html
Copyright © 2020-2023  润新知