八:快速排序

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))}


以上是关于八:快速排序的主要内容,如果未能解决你的问题,请参考以下文章

3491=数据结构实验之排序八:快速排序

无法计算排序超过八个元素

快速排序-递归实现

使用Java实现八种基本排序

java常用八大排序法

十大经典排序算法