1 package main
2 import "fmt"
3
4 func qsort(data []int) {
5 if len(data) <= 1 {
6 return
7 }
8 mid := data[0]
9 head, tail := 0, len(data)-1
10 for i := 1; i <= tail; {
11 if data[i] > mid {
12 data[i], data[tail] = data[tail], data[i]
13 tail--
14 } else {
15 data[i], data[head] = data[head], data[i]
16 head++
17 i++
18 }
19 }
20 qsort(data[:head])
21 qsort(data[head+1:])
22 }
23
24 func main(){
25 var arr = [...]int{1, 4, 8, 2, 55, 3, 4, 8, 6, 4, 0, 11, 34, 90, 23, 54, 77, 9, 2, 9, 4, 10};
26 fmt.Println(arr) //[popexizhi: 这个用%v,%s 很奇怪的效果可以试试啊:)]
27 qsort(arr[:]) //[popexizhi: 这个是不一样之处,type *[22]int 和 type []int 不是一个类型的 ,
这里形参定义使用 []int ,调用时确定长度的数组要使用 arr[:] ]
28 fmt.Println(arr)
29 }
参考:http://shouce.jb51.net/golang-doc/20.html
没有评论:
发表评论