File tree 2 files changed +6
-6
lines changed
2 files changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -55,13 +55,13 @@ func QuickSortInPlace(target []int) []int {
55
55
j := right
56
56
// 以双指针相遇地将数组分割成两部分,将两侧分布不对的元素互换
57
57
for i < j {
58
- // 直接找到比基准小的元素
58
+ // 直接找到比基准小的元素, 基准放右侧
59
59
for i < j && arr [j ] >= datum {
60
60
j --
61
61
}
62
62
arr [i ] = arr [j ]
63
- // 直接找到比基准大的元素
64
- for i < j && arr [i ] <= datum {
63
+ // 直接找到比基准大的元素,<表示不要基准
64
+ for i < j && arr [i ] < datum {
65
65
i ++
66
66
}
67
67
arr [j ] = arr [i ]
@@ -87,7 +87,7 @@ func QuickSort(arr []int) {
87
87
for array [i ] < k {
88
88
i ++
89
89
}
90
- for array [j ] > k {
90
+ for array [j ] >= k {
91
91
j --
92
92
}
93
93
if i > j {
Original file line number Diff line number Diff line change @@ -27,10 +27,10 @@ func isArraySort(target []int) bool {
27
27
}
28
28
29
29
func TestQuickSort (t * testing.T ) {
30
- for i := 0 ; i < 20 ; i ++ {
30
+ for i := 0 ; i < 50 ; i ++ {
31
31
arr := makeRandomArray (10 )
32
32
fmt .Printf ("origin arr=%v\n " , arr )
33
- QuickSort (arr )
33
+ QuickSortInPlace (arr )
34
34
isSort := isArraySort (arr )
35
35
if ! isSort {
36
36
t .Errorf ("sort fail, arr=%v\n " , arr )
You can’t perform that action at this time.
0 commit comments