冒泡排序实现
/*
go语言中数组的定义:
1.用var关键字定义, var arr [5]int, 需要指定元素个数;
2.用:=定义, arr := [3]int{1,3,5}, 需要赋初值
用:=定义, 由编译器计算元素个数,arr:= [...]int{1,2,3,4,5}
*/
/*
冒泡排序:第1个元素和第2个元素比较,若a[j] > a[j+1], 那么交换位置
0. 思想:n个元素,依次处理每个元素,因此需要处理n次;
1. 需要使用两层循环,2个元素只需比较1次,外层循环 n-1 次
2. 关键点在内层循环处理次数, n个元素需要处理n-1次,但是每次处理完1个元素后,下次处理 -1 次
因此,内层总的处理次数为 n-1-i,
*/
/* Go 一些语法规则
1. go中函数定义,
2. 函数形参,参数在前,类型在后,a[] int
3. go中,求数组长度,用len()
*/
package main
import "fmt"
func bubble_sort(a[] int){
n := len(a)
for i:=0; i<n-1; i++ {
for j:=0; j<n-1-i; j++ {
if a[j] > a[j+1] {
a[j], a[j+1] = a[j+1], a[j]
}
}
}
}
// 数组打印函数
func print_arr(a[] int) {
n := len(a)
for i:=0;i<n;i++{
fmt.Printf("%d",a[i])
}
fmt.Printf("\n")
}
func main() {
a := []int{5,3,6,8,2,1,9,0}
print_arr(a)
bubble_sort(a)
print_arr(a)
}