go语言实现快速排序
时间: 2024-03-16 09:39:50 浏览: 116
实现快速排序
Go语言可以通过递归实现快速排序算法。快速排序是一种高效的排序算法,它的基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
下面是Go语言实现快速排序的代码示例:
```go
package main
import "fmt"
func quickSort(arr []int, left, right int) {
if left < right {
pivot := partition(arr, left, right)
quickSort(arr, left, pivot-1)
quickSort(arr, pivot+1, right)
}
}
func partition(arr []int, left, right int) int {
pivot := arr[right]
i := left - 1
for j := left; j < right; j++ {
if arr[j] < pivot {
i++
arr[i], arr[j] = arr[j], arr[i]
}
}
arr[i+1], arr[right] = arr[right], arr[i+1]
return i + 1
}
func main() {
arr := []int{9, 5, 2, 7, 1, 8, 3}
quickSort(arr, 0, len(arr)-1)
fmt.Println(arr)
}
```
在上述代码中,`quickSort`函数用于递归地进行快速排序,`partition`函数用于将数组分割成两部分,并返回分割点的索引。最后,在`main`函数中调用`quickSort`函数对数组进行排序,并输出排序结果。
阅读全文