python實現氣泡排序

2021-09-27 04:38:44 字數 1042 閱讀 7772

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

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

比較相鄰的元素。如果第乙個比第二個大(公升序),就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

氣泡排序python實現也很簡單,**如下:

def

bubble

(lst)

:for i in

range(1

,len

(lst)):

# 確定要進行排序的次數

count =

0# 用於判斷是否已排序完成,每次交換就進行加1,如果某次迴圈比較結束count還是0,則證明已排序完成

for j in

range

(len

(lst)

-i):

# 每次排序進行比較的次數

if lst[j]

> lst[j+1]

:"""如果第二個元素比第乙個大,進行交換"""

lst[j]

,lst[j+1]

= lst[j+1]

,lst[j]

count +=

1if count ==0:

return lst

lst =[1

,3,87

,23,7

,90,12

,34]print

(bubbling(lst)

)# [1, 3, 7, 12, 23, 34, 87, 90]

氣泡排序的時間複雜度為o(n²),最優時間複雜度為o(n),即如果給出的列表本身就是按順序排列的,那麼只會迴圈比較一次就會完成排序。

氣泡排序(python實現)

coding utf 8 created on tue jul 4 11 37 19 2017 data list cnt num all 0 def data in func data list,cnt num all while true judge continue input 請選擇是輸入資...

氣泡排序(Python實現)

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

Python實現氣泡排序

氣泡排序 bubble sort 是最容易理解的排序演算法之一,但是執行效率有點低。冒泡過程 對待排序部分 假設有m個元素 從頭開始進行兩兩比較,如果第乙個比第二個大 公升序 就交換他們兩個。這樣本輪排序結束後就可以保證值最大的元素在最右邊,那麼下次只需要對前面 m 1 個數進行冒泡。完整的氣泡排序...