example01:冒泡排序
利用切片传参,因为可变长的,数组是固定长度的。
先梳理清楚冒泡排序的逻辑,冒泡排序原理:
a[0]开始,与后面的数字对比,比a[0] 大的,就取代a[0]的位置,接着是a[1], 最后到a[len(a)] 比较完毕,输出结果。
package main
import (
"fmt"
)
func bsort(a []int) {
for i := 0; i < len(a);i++ {
for j := i+1;j<len(a);j++ {
if a[i] < a[j] {
a[i],a[j] = a[j],a[i]
}
}
}
}
func main() {
b := [...]int{1,44,77,12,64,11,94,123,2}
bsort(b[:])
fmt.Println(b)
}
运行结果:
PS F:\go\src\go_dev> .\main.exe
[123 94 77 64 44 12 11 2 1]
PS F:\go\src\go_dev>