用go写一个快速排序算法
时间: 2023-03-20 15:01:52 浏览: 98
好的,以下是使用Go语言编写的快速排序算法示例:
```go
package main
import "fmt"
func quickSort(arr []int) []int {
if len(arr) <= 1 {
return arr
}
pivot := arr[0] // 选择第一个元素作为基准点
var left, right []int
for i := 1; i < len(arr); i++ {
if arr[i] < pivot {
left = append(left, arr[i]) // 比基准点小的元素放在左边数组
} else {
right = append(right, arr[i]) // 比基准点大的元素放在右边数组
}
}
// 递归排序左右两边的数组,然后将结果合并
return append(append(quickSort(left), pivot), quickSort(right)...)
}
func main() {
arr := []int{10, 7, 8, 9, 1, 5}
fmt.Println("原始数组:", arr)
arr = quickSort(arr)
fmt.Println("排序后数组:", arr)
}
```
快速排序算法的基本思路是选择一个基准点,将小于基准点的元素放在左边,大于基准点的元素放在右边,然后递归地对左右两边的数组进行排序。在上面的示例中,我们选择第一个元素作为基准点,并使用`append`函数将排序后的左右两边数组合并。
阅读全文