依次便利資料,比較相鄰元素,把數值較大或較小的資料往後排。假設有n個資料,那麼第一次最大或最小的數值排到最後(n-1的位置),第二次最大或最小的數值排在(n-2的位置),以此類推。
原始資料 2
1255731
3190
3295
76依次內迴圈結束的資料 2
5123157
3132
9076952
5123131
5732
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690952
5123131
3257
7690
95相鄰兩個元素進行比較:(內迴圈)2和12比較,2小於12於是位置不變,12和5比較,12大於5,交換,12和57比較,不變,57和31比較,交換,57和31比較,交換,57和90比較,不變,90和32比較,交換,90和95比較,不變,95和76比較,交換。這樣就形成了第一組資料。依次類推,每次內迴圈結束後,當前比較中的最大值會移動到內迴圈便利的最大位置處(第一次內迴圈結束後就能確定整個資料中最大的資料,第二次內迴圈不會對第一次內迴圈的最大資料進行比較),紅色為當前迴圈不參與比較的資料。
void bubblingsort(int a,int nlen)
} }}
s(n)=n+(n-1)+(n-2)+...+(n-n)=n(n+0)/2,時間複雜度為o(n^2)。
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...
排序演算法之氣泡排序
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...