go-快速排序
package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3, 0} fmt.Printf("arr: %v\n", arr) sort(arr, 0, len(arr)-1) fmt.Printf("arr: %v\n", arr) } func sort(arr []int, leftBound int, rightBound int) { if leftBound > rightBound { return } var left = AdjustArray(arr, leftBound, rightBound) fmt.Printf("arr: %v\n", arr) sort(arr, leftBound, left-1) sort(arr, left+1, rightBound) } func AdjustArray(arr []int, leftBound int, rightBound int) int { var mid = arr[rightBound] var left = leftBound var right = rightBound - 1 for { if left >= right { break } for { if arr[left] > mid || left >= rightBound { break } left++ } for { if arr[right] < mid || right <= leftBound { break } right-- } if left < right { swap(arr, left, right) } } swap(arr, left, rightBound) return left } func swap(arr []int, a, b int) { var temp = arr[a] arr[a] = arr[b] arr[b] = temp } 输出...