冒泡算法
實現原理
從數組第一個數開始,和後一位數對比,如果比後面的數大,就交換位置,直到最後一位,再從第一位開始,知道最後一趟沒有交換爲止,時間複雜度爲n^2
實現代碼
func Bubble(a []int) []int {
//array:=[]int{8,6,5,4,1,2,9,3,7}
//是否有交換
fmt.Printf("原始數組%v\n", a)
for i := 0; i < len(a)-1; i++ {
fmt.Println("--")
var flag bool = true
for j := 0; j < len(a)-i-1; j++ {
if a[j] > a[j+1] {
a[j], a[j+1] = a[j+1], a[j]
fmt.Printf("第%d輪第%d遍第%d個和第%d個交換:%v\n", i+1, j, j+1, j+2, a)
flag = false
continue
} else {
fmt.Printf("第%d輪第%d遍(無交換)%% :%v\n", i+1, j, a)
}
}
if flag {
break
}
}
return a
}