golang實現冒泡算法

冒泡算法

實現原理

從數組第一個數開始,和後一位數對比,如果比後面的數大,就交換位置,直到最後一位,再從第一位開始,知道最後一趟沒有交換爲止,時間複雜度爲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
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章