复习一下快速排序
快速排序的思想很简单,三步完成:
-
在数组,挑出来一个元素,作为
pivot
(基准) -
所有小于等于
pivot
的元素,都放到left
数组,所有大于right
的元素,都放到right
数组。 -
对
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)]
}
网友评论