package main
import (
"fmt"
)
func quickSort(array []int, p, r int) {
if p < r {
q := partition(array, p, r)
quickSort(array, p, q-1)
quickSort(array, q+1, r)
}
}
func partition(array []int, p, r int) int {
x := array[r]
i := p - 1
for j := p; j < r; j++ {
if array[j] <= x {
i++
array[i], array[j] = array[j], array[i]
}
}
array[i+1], array[r] = array[r], array[i+1]
return i + 1
}
func main() {
arr := []int{13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}
fmt.Println(arr)
quickSort(arr, 0, len(arr)-1)
fmt.Println(arr)
}

image.png
网友评论