八:快速排序
Posted JavaScript技术分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八:快速排序相关的知识,希望对你有一定的参考价值。
思路:
随机选择一个基准值(数组中任意一项均可作为基准值)。
遍历整个数组(不包含基准值)。
声明两个临时数组:左数组,右数组。
把大于基准值的值放入右数组,小于基准值的值放入左数组。
将左数组,基准值,右数组拼接到一起。
按此思路,依次递归排序。
算法如下:
/**
* @description 快速排序
* @param {*} arr 目标数组
*/
function quickSort(arr) {
if (arr.length < 2) return arr
// 选择任意一个元素作为基准值
const baseValue = arr.splice(0, 1)
// 比baseValue小的值放入leftArr
const leftArr = []
// 比baseValue大的值放入rightArr
const rightArr = []
arr.forEach(item => item > baseValue ? rightArr.push(item): leftArr.push(item))
return [].concat(quickSort(leftArr), baseValue, quickSort(rightArr))
}
以上是关于八:快速排序的主要内容,如果未能解决你的问题,请参考以下文章