【代码】Go语言快速排序

前言

Go语言快速排序

源代码

从小到大递增

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
func quickSortAsc(arr []int, leftStart int, rightStart int) {
var leftPoint = leftStart
var rightPoint = rightStart
var pivot = (leftStart + rightStart) / 2
for leftPoint < rightPoint {
for arr[leftPoint] < arr[pivot] {
leftPoint += 1
}
for arr[rightPoint] > arr[pivot] {
rightPoint -= 1
}
if leftPoint >= rightPoint {
break
}
arr[leftPoint], arr[rightPoint] = arr[rightPoint],arr[leftPoint]
fmt.Println(arr)
if arr[leftPoint] == arr[pivot] {
leftPoint += 1
}
if arr[rightPoint] == arr[pivot] {
rightPoint -= 1
}
}
if leftPoint == rightPoint {
leftPoint += 1
rightPoint -= 1
}
if leftStart < rightPoint {
quickSortAsc(arr, leftStart, rightPoint)
}
if rightStart > leftPoint {
quickSortAsc(arr, leftPoint, rightStart)
}
}

完成

参考文献

哔哩哔哩——尚硅谷