package main import "fmt" func quickSort(nums []int, left, right int) { if left >= right { return } i, j := left-1, right+1 x := nums[(left+right)>>1] for i < j { for { i++ if nums[i] >= x { break } } for { j-- if nums[j] <= x { break } } if i < j { nums[i], nums[j] = nums[j], nums[i] } } quickSort(nums, left, j) quickSort(nums, j+1, right) } func main() { var n int fmt.Scanf("%d\n", &n) nums := make([]int, n) for i := 0; i < n; i++ { fmt.Scanf("%d", &nums[i]) } quickSort(nums, 0, n-1) for _, v := range nums { fmt.Printf("%d ", v) } }