zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Hibernate中的Session
    角色转变中
    Hibernate主键生成策略
    Hibernate主键生成策略
    java中List集合
    java中List集合
    Mongodb的安装--简单快速
    Follow My Heart
    memcached的缺点
    为什么引入Memcached?
  • 原文地址:https://www.cnblogs.com/liyongquan/p/9134634.html
Copyright © 2011-2022 走看看