疾速排序是效率比拟高的一种排序算法,其思维次要是递归
package main
import "fmt"
func QuickSort(left int, right int, arr *[6]int) {
l := left
r := right
pivot := arr[(left + right) / 2]
for ; l < r; {for ; arr[l] < pivot; {l++}
for ; arr[r] > pivot; {r--}
if l >= r {break}
arr[r], arr[l] = arr[l], arr[r]
if arr[l] == pivot {r--}
if arr[r] == pivot {l++}
}
if l==r {
l++
r--
}
if left < r {QuickSort(left, r, arr)
}
if right > l {QuickSort(l, right, arr)
}
}
func main(){arr := [6]int{-9, 78, 0, 23, -57, 70}
fmt.Println(arr)
QuickSort(0, len(arr) - 1, &arr)
fmt.Println(arr)
}
输入:
[-9 78 0 23 -57 70]
[-57 -9 0 23 70 78]