氣泡排序演算法的運作如下:(假設有n個元素的陣列a[n])
1、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個的位置。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。第一趟結束後,最後的元素(即a[n-1])是最大的數。
3、針對前n-1個的元素重複以上的步驟,直到沒有任何一對數字需要比較。
若檔案的初始狀態是正序的,一趟掃瞄即可完成排序。所需的關鍵字比較次數c和記錄移動次數m均達到最小值: cm
in=n
−1; mm
in=0
所以,氣泡排序最好的時間複雜度為 o(
0)若初始檔案是反序的,需要進行 n-1趟排序。每趟排序要進行 n-i次關鍵字的比較(1≤i≤n-1),且每次比較都必須移動記錄三次來達到交換記錄位置。在這種情況下,比較和移動次數均達到最大值: cm
ax=n
(n−1
)2=o
(n2)
; mm
ax=3
n(n−
1)2=
o(n2
) 氣泡排序的最壞時間複雜度為 o(
n2)
綜上,因此氣泡排序總的平均時間複雜度為 o(
n2)
以陣列a[n]為例,a[0]為陣列的第乙個元素
for(int i=0;i//趟數
}}
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...
排序演算法之氣泡排序
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...