• 技术文章 >Web开发 >JavaScript

    js中快速排序如何实现

    小妮浅浅小妮浅浅2021-11-17 15:13:17原创13258

    1、分区,从数组中选择一个基准,所有比基准小的元素都放在基准前面,比基准大的元素放在基准后面。

    2、递归,递归地对基准前后的子树组进行分区。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    Array.prototype.quickSort = function () {

      const rec = (arr) => {

        if (arr.length === 1) {

          return arr;

        }

        const left = [];

        const right = [];

        const mid = arr[0];

        for (let i = 1; i < arr.length; i += 1) {

          if (arr[i] < mid) {

            left.push(arr[i]);

          } else {

            right.push(arr[i]);

          }

        }

        return [...rec(left), mid, ...rec(right)];

      };

      const res = rec(this);

      res.forEach((n, i) => {

        this[i] = n;

      });

    };

      

    const arr = [2, 4, 5, 3, 1];

    arr.quickSort();

    以上就是js中快速排序的实现,希望对大家有所帮助。更多js学习指路:js教程

    推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

    专题推荐:js 快速排序
    上一篇:js广度优先遍历如何实现 下一篇:js中二分搜索的使用

    相关文章推荐

    • js中构造器属性的介绍• js栈的应用场景• js中的树如何理解• js中ES Module和CommonJs的区别• js作用域链是什么• js声明变量的提升• js中pop和push的比较• js中shift和unshift的对比• js如何检查是否满足条件• js数组归并的方法• js函数中arguments属性是什么• js函数中this如何使用• js中eval方法是什么• js深度优先遍历的介绍• js广度优先遍历如何实现

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网