演算法 排序之氣泡排序

2021-08-19 15:18:30 字數 1190 閱讀 7476

氣泡排序(英語:bubble sort)是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

氣泡排序演算法的運作如下:

交換過程圖示(第一次):

那麼我們需要進行n-1次冒泡過程,每次對應的比較次數如下圖所示:

實現**如下:

defbubble_sort(a_list):

"""氣泡排序

僅僅利用順序表來說明其主要思想,並不利用鍊錶實現,但是其思想是相同的,只是鍊錶稍微複雜一點

"""n = len(a_list)

forjinrange(0

, n-1):

# 外層迴圈控制執行多少次

foriinrange(0

,n-j-1):

# 內層迴圈控制從開始走到**停止,不是每一次都要走到最後list[n-1],隨著執行次數的增加,內層迴圈的長度會逐漸變短

ifa_list[i] > a_list[i+1]:

a_list[i], a_list[i+1] = a_list[i+1], a_list[i]

if__name__ == "__main__":

lisi1 = [5, 7

, 1, 45

, 4556, 0

, 26]

print("排序之前:%s"%lisi1)

bubble_sort(lisi1)

print("排序之後:%s"%lisi1)

執行結果:

排序之前:[5, 7, 1, 45, 4556, 0, 26]

排序之後:[0, 1, 5, 7, 26, 45, 4556]

程序已結束,退出**0

排序演算法之氣泡排序

參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...

排序演算法之氣泡排序

對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...

排序演算法之氣泡排序

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