2
【代码】Go语言快速排序
source link: https://loli.fj.cn/2023/06/03/Go%E8%AF%AD%E8%A8%80%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
【代码】Go语言快速排序
2023-06-03
Go语言快速排序
从小到大递增
func quickSortAsc(arr []int, leftIndex int, rightIndex int) {
// 存放较小的数
var leftTemp int
// 存放较大的数
var rightTemp int
// 存放中轴(支点)数
var pivot int = arr[(leftIndex+rightIndex)/2]
for leftTemp < rightTemp {
for arr[leftTemp] < pivot {
leftTemp += 1
}
for arr[rightTemp] > pivot {
rightTemp -= 1
}
if leftTemp > rightTemp {
break
}
arr[leftTemp], arr[rightTemp] = arr[rightTemp], arr[leftTemp]
if arr[leftTemp] == pivot {
rightTemp -= 1
}
if arr[rightTemp] == pivot {
leftTemp += 1
}
}
if leftTemp == rightTemp {
leftTemp += 1
rightTemp -= 1
}
if leftIndex < rightTemp {
quickSortAsc(arr, leftIndex, rightTemp)
}
if rightIndex > leftTemp {
quickSortAsc(arr, leftTemp, rightIndex)
}
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK