用go写一个快速排序
时间: 2023-07-01 21:25:40 浏览: 79
好的,以下是用Go语言实现的快速排序的代码:
```go
package main
import "fmt"
func quickSort(arr []int, left, right int) {
if left >= right {
return
}
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
for j := left; j < right; j++ {
if arr[j] < pivot {
arr[i], arr[j] = arr[j], arr[i]
i++
}
}
arr[i], arr[right] = arr[right], arr[i]
return i
}
func main() {
arr := []int{10, 80, 30, 90, 40, 50, 70}
fmt.Println("Before sorting:", arr)
quickSort(arr, 0, len(arr)-1)
fmt.Println("After sorting:", arr)
}
```
我们定义了函数`quickSort`来实现快速排序,其中`partition`函数用来将数组按照pivot值分为两个部分。最后,在`main`函数中我们测试了一下,输出了排序前后的数组。
希望这能回答你的问题!
阅读全文