Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f04e6d6

Browse files
committed
feat: 快速排序
1 parent f47aae4 commit f04e6d6

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

排序/快速排序.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ const swap = require("../工具/交换");
55
* @param {number[]} arr
66
*/
77
function quickSort(arr) {
8-
_quickSort(arr, 0, n - 1);
8+
_quickSort(arr, 0, arr.length - 1);
9+
return arr;
910
}
1011

1112
/**
@@ -19,8 +20,8 @@ function _quickSort(arr, l, r) {
1920
return;
2021
}
2122
let p = partition(arr, l, r);
22-
__quickSort(arr, l, p - 1);
23-
__quickSort(arr, p + 1, r);
23+
_quickSort(arr, l, p - 1);
24+
_quickSort(arr, p + 1, r);
2425
}
2526

2627
/**
@@ -37,11 +38,17 @@ function partition(arr, l, r) {
3738
// arr[l+1...j] < v < arr[j+1...i) > v
3839
let j = l;
3940
for (let i = l + 1; i <= r; i++) {
40-
if (arr[i] < v) {
41+
let num = arr[i]
42+
if (num < v) {
4143
// 如果当前值小于基准值的话,就交换到j + 1后的位置去。
4244
// 扩充了j的范围 [j...], v, [...r]
4345
swap(arr, j + 1, i);
4446
j++;
4547
}
4648
}
49+
50+
swap(arr, l, j);
51+
return j
4752
}
53+
54+
console.log(quickSort([1, 4, 2, 5, 3]));

0 commit comments

Comments
 (0)