package main
import (
"fmt"
"math/rand"
)
func main() {
arr := make([]int, 20)
for i := 0; i < 20; i++ {
arr[i] = rand.Intn(100)
}
fmt.Println(arr)
QuaitSort(arr)
fmt.Println(arr)
}
func QuaitSort(arr []int) {
doQuaitSort(arr, 0, len(arr)-1)
}
func doQuaitSort(arr []int, s, e int) {
if s >= e {
return
}
p := arr[s]
l, r := s+1, e
for l < r {
for l < r && p < arr[r] {
r--
}
for l < r && arr[l] < p {
l++
}
arr[l], arr[r] = arr[r], arr[l]
}
if arr[l] > p {
arr[s], arr[l-1] = arr[l-1], p
} else {
arr[s], arr[l] = arr[l], p
}
doQuaitSort(arr, s, l-1)
doQuaitSort(arr, l+1, e)
}
网友评论