Appearance
手写快速排序
ts
function quickSort(arr: number[], startIndex = 0): number[] {
if (arr.length <= 1) return arr;
const right: number[] = [],
left: number[] = [],
startNum = arr.splice(startIndex, 1)[0];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < startNum) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), startNum, ...quickSort(right)];
}
function quickSort(arr: number[], startIndex = 0): number[] {
if (arr.length <= 1) return arr;
const right: number[] = [],
left: number[] = [],
startNum = arr.splice(startIndex, 1)[0];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < startNum) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), startNum, ...quickSort(right)];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14