代码即思想。有空在补全思想吧。。
package main
import (
"fmt"
)
func main() {
arr := []int{4, 3, 1, 5, 6}
fmt.Printf("arr is %v", quickSort(arr))
}
func quickSort(arr []int) []int {
if len(arr) < 2 {
return arr
}
pivot := arr[0]
left := make([]int, 0, len(arr))
right := make([]int, 0, len(arr))
for _, val := range arr[1:] {
fmt.Println(val)
if pivot > val {
left = append(left, val)
} else if pivot < val {
right = append(right, val)
}
}
return append(append(quickSort(left), pivot), quickSort(right)...)
}
本文介绍了一个使用Go语言实现的快速排序算法。通过递归方式,选择基准元素将数组分为两部分,左边小于基准,右边大于基准,然后分别对左右两边进行同样的操作,最终实现数组的完全排序。
653

被折叠的 条评论
为什么被折叠?



