排序演算法之氣泡排序

2021-07-30 05:50:54 字數 788 閱讀 4600

氣泡排序演算法的運作如下:(假設有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 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...