图解算法第二章快速排序使用GO语言实现,仅供参考,错误之处,欢迎联系我纠正
package main
import (
"fmt"
)
func main() {
fmt.Println(quickSort([]int{99, 93, 33, 55, 63, 23, 44, 32, 43, 312}))
fmt.Println(quickSort([]int{3, 5, 3}))
fmt.Println(quickSort([]int{1}))
fmt.Println(quickSort([]int{}))
}
func quickSort(list []int) []int {
if len(list) >= 2 {
middle := list[0]
less := []int{}
greater := []int{}
for _, item := range list[1:] {
if item >= middle {
greater = append(greater, item)
} else {
less = append(less, item)
}
}
result := append(append(quickSort(less), middle), quickSort(greater)...)
return result
} else {
return list
}
}