2026-03-24
golang
00

目录

golang实现快速排序

golang实现快速排序

  • 什么是快速排序
    • 从数组中选中一个基准值,递归遍历数组的值和基准值作对比,分为比基准值大的,比基准值小的数组后合并
js
package main import "fmt" func quickSort(arr []int, low, high int) { if low < high { // 获取分区后的基准索引 pivotIndex := partition(arr, low, high) // 递归排序左半部分 quickSort(arr, low, pivotIndex-1) // 递归排序右半部分 quickSort(arr, pivotIndex+1, high) } } func partition(arr []int, low, high int) int { // 选择最右侧元素作为基准 pivot := arr[high] i := low - 1 // i 指向小于基准的区域边界 for j := low; j < high; j++ { // 如果当前元素小于或等于基准 if arr[j] <= pivot { i++ // 交换元素 arr[i], arr[j] = arr[j], arr[i] } } // 将基准值交换到中间正确的位置 arr[i+1], arr[high] = arr[high], arr[i+1] return i + 1 } func main() { data := []int{34, 7, 23, 32, 5, 62} fmt.Println("排序前:", data) quickSort(data, 0, len(data)-1) fmt.Println("排序后:", data) }

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!