让前端飞

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

2017-07-23  本文已影响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)]
}
上一篇下一篇

猜你喜欢

热点阅读