快速排序

思路

从数组中取出一个基准数,小于它的数放在左边数组,大于它的数放在右边数组

递归进行上面的步骤

合并两个数组

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let arr = [31, 23, 34, 2, 13, 234];

function quickSort(arr) {
//找基准数,并且将将比基准数小的全部放到左边,大于等于基准数的全部放在右边
//对左右数组分别进行快排,条件(数组中的元素要大于等于2个)
//合并排序好之后的左右数组,并且返回
let temp = arr[0]; //基准数
let left = []; //左数组
let right = []; //右数组
for (let i = 1; i < arr.length; i++) {
if(arr[i]<temp){
left.push(arr[i])
}else{
right.push(arr[i]);
}
}
if(left.length>2) left = quickSort(left);
if(right.length>2) right = quickSort(right);

return left.concat(right);
}
console.log(quickSort(arr))

快速排序
https://blog-theta-ten.vercel.app/2021/08/15/快速排序/
作者
Chen
发布于
2021年8月15日
许可协议