氣泡排序,是從最後開始,兩兩對比,如果前面的數字大於後面的數字,則調換數字順序。
如下圖:
第一步:對比最後1位,和末2位,2<6,不操作。
接下來向前移動一位,對比末2,和末3 。1<2,不操作
接下來向前移動一位,對比末3,和末4 。
3>1,調換兩個元素在陣列中的位置,調換後的圖形如下:
繼續向前移動對比。
當第一輪結束時,圖形如下:
此時,整個陣列中,最小的數字移動到0號位。其他數字順序不變。
** 此時完成第一輪冒泡 **
我們需要排序的數字一共有9個,則,經過8輪排序,所有數字可以歸位。
此時,時間複雜度計算公式為:9+8+7+6+5+4+3+2 = (9+2)*8/2
表示如下o(n**2/2)
package main
// 5,7,9,4,8,3,1,2,6,3
// 氣泡排序
func
bubblesort()
iter_print
(sort_init...
)for i :=
0; i <
len(sort_init)-1
; i++}}
iter_print
(sort_init...)}
// 列印陣列
func
iter_print
(sort_list ...
int)
println()
}func
main()
Go 氣泡排序
思路 前乙個和後乙個比較,如果前乙個大於後乙個則互換值,第一輪把最大的值放到右邊,第二輪把第二大的值放到右邊第二個,一直到最後一輪,沒有換值則表明已經排好 陣列 第一輪 先拿14和3比較,大於所以換值,現在數組成了 然後14和12比較,大於就換值,現在數組成了 第二輪13和12比較,大於換值,現在數...
C語言排序演算法 氣泡排序演算法
氣泡排序是一種交換排序,基本思想是 相鄰兩兩比較,若反序則交換。定義交換操作函式 1 void swap int p,int i,intj 2 基本排序演算法 思想 i 0時,p i 依次與後面的元素比較,如果後面的元素小,則交換位置,繼續比較,直到將最小的元素交換到第乙個位置,再從第二個開始與後面...
go語言排序之選擇排序 氣泡排序 快速排序
即每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。package main import fmt 選擇排序 func main...