Appearance
排序算法
算法是我整个学习体系中最薄弱的一环,故决定从头开始好好的学习一下一些基础的算法,就从排序算法开始吧 😋
项目地址:传送门
快速排序
关于快速排序算法
顾名思义,快速排序是的特点就是快!至少相比较于冒泡排序、插入排序、选择排序相比,这个是很快的!所以有必要在第一个复习(学习)它!
排序过程
- 先取出数组中的一个值,作为基准值。
- 根据这个基准值 再分为小于基准值的数组 和 大于基准值 的数组
- 进入递归
- 当递归的数组小于两个时 跳出递归 将这个数组返回 基线条件
- 最后将每个数组拼接在一起
代码展示
js
const arr = [11, 2, 4, 3, 6, 87]
/**
*
* @param {number[]} arr
* @returns {number[]}
*/
function quickSort(arr) {
if (arr.length < 2) {
return arr
}
let pivot = arr[0]
let less = arr.slice(1).filter(item => item <= pivot)
let greater = arr.slice(1).filter(item => item > pivot)
return quickSort(less).concat([pivot]).concat(quickSort(greater))
}
console.log('res', quickSort(arr))
const arr = [11, 2, 4, 3, 6, 87]
/**
*
* @param {number[]} arr
* @returns {number[]}
*/
function quickSort(arr) {
if (arr.length < 2) {
return arr
}
let pivot = arr[0]
let less = arr.slice(1).filter(item => item <= pivot)
let greater = arr.slice(1).filter(item => item > pivot)
return quickSort(less).concat([pivot]).concat(quickSort(greater))
}
console.log('res', quickSort(arr))