疾速排序是效率比拟高的一种排序算法,其思维次要是递归
package mainimport "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]