func quickSort(nums []int, left int, right int) {
if left >= right {
return
}
p := quickSortPartition(nums, left, right)
quickSort(nums, left, p - 1)
quickSort(nums, p + 1, right)
}
func quickSortPartition(nums []int, left int, right int) int {
swap(nums, rand.Intn(right - left + 1) + left, left)
base := nums[left]
i := left
j := right
for i < j {
for i < j && base <= nums[j] {
j--
}
for i < j && base >= nums[i] {
i++
}
swap(nums, i, j)
}
nums[left] = nums[i]
nums[i] = base
return i
}
func swap(nums []int, i, j int) {
tmp := nums[i]
nums[i] = nums[j]
nums[j] = tmp
}
09-30
515
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-04
1824
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交