快排:
package main
import "fmt"
func quickSort(arr []int) []int {
var res []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])
}
}
left = quickSort(left)
right = quickSort(right)
res = append(append(left, pivot), right...)
return res
}
func main() {
arr := []int{12, 4, 5, 6, 7, 3, 1, 15}
res := quickSort(arr)
fmt.Println(res)
}