快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const quickSort = (arr) => {
if(arr <= 1return arr; // 数组个数小于等于1则返回
let pivotIndex = Math.floor(arr.lenth / 2); // 基准数组下标
let pivot = arr.splice(pivotIndex, 1)[0]; // 基准数组, 目标数组已改变
let left = [], right = [];
for(let i = 0, len = arr.length; i < len; i++) {
if(arr[i] < pivot) 
left.push(arr[i]);
else
right.push(arr[i]);
}
// 递归操作
return quickSort(left).concat([pivot], quickSort(right));
}

参考

经不住似水流年  逃不过此间少年
0%