2

【代码】Go语言快速排序

 1 year ago
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.
neoserver,ios ssh client

【代码】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)
}
}

哔哩哔哩——尚硅谷


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK