golang 中 slice 的便捷操作使排序也更加方便,这是一个使用递归完成的快排。
func quickSort(arr []int) []int {
if len(arr) <= 1 {
return arr
}
index := len(arr) / 2
var left, right []int
for i, v := range arr {
if i == index {
continue
}
if v <= arr[index] {
left = append(left, v)
continue
}
right = append(right, v)
}
return append(append(quickSort(left), arr[index]), quickSort(right)...)
}
暂时没有留言