js中快速排序如何实现

美女程序员鼓励师

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

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

实例

js;toolbar:false">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中快速排序如何实现 的全部内容, 来源链接: utcz.com/z/546322.html

回到顶部