• 技术文章 >Web开发 >JavaScript

    js中快速排序如何实现

    小妮浅浅小妮浅浅2021-10-12 16:03:15原创166

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

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

    实例

    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教程

    专题推荐: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学习网