美文网首页让前端飞
【算法】快速排序(JavaScript实现)

【算法】快速排序(JavaScript实现)

作者: 陈小俊先生 | 来源:发表于2017-07-23 20:04 被阅读0次

复习一下快速排序

快速排序的思想很简单,三步完成:

  1. 在数组,挑出来一个元素,作为 pivot(基准)

  2. 所有小于等于pivot的元素,都放到left数组,所有大于right的元素,都放到right数组。

  3. left、right数组,不断重复第一步和第二步,直到数组中只剩下一个元素为止。


javascript代码如下:

const quickSort = arr => {
  if(arr.length <= 1 ) return arr
  let pivot = arr.splice(Math.ceil(arr.length / 2), 1)[0],
    left = [],
    right = []
  arr.forEach(o => o <= pivot ? left.push(o) : right.push(o))
  return [...quickSort(left), pivot, ...quickSort(right)]
}

相关文章

网友评论

    本文标题:【算法】快速排序(JavaScript实现)

    本文链接:https://www.haomeiwen.com/subject/idgmkxtx.html