Skip to content

快速排序

Go
package main

import "fmt"

func main() {
	a := []int{2, 4, 1, 6, 7, 3, 9, 0}

	fmt.Println(quickSort(a))
}

func quickSort(a []int) []int {
	if len(a) <= 1 {
		return a
	}
	bench := a[0]

	var left, right []int

	for i := 1; i < len(a); i++ {
		if a[i] > bench {
			right = append(right, a[i])
		} else {
			left = append(left, a[i])
		}
	}

	return append(append(quickSort(left), bench), quickSort(right)...)
}