氣泡排序 python3 實現

2021-10-10 05:19:37 字數 933 閱讀 5251

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。 

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 [1]

針對所有的元素重複以上的步驟,除了最後乙個。 

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。  

個人補充:

每完成一次氣泡排序就能確定乙個元素的最終位置,即第一次完成氣泡排序就能最大的數字在最後的位置(冒泡從小到大排序)。n個元素就需要n-1次排序(因為n-1個元素已經確定位置了,那第n個元素此時的位置就是他的最終位 置,所以n個元素需要n-1次冒泡,而不是n次)。

a = [3, 23, 78, 19, 21, 99, 5, 101, 18]

def bubble_sort(lst):

n = len(lst)

for i in range(n - 1): # 一共需要迴圈n-1次

for j in range(0, n - i - 1): # 每次比較大小,交換值

if lst[j] > lst[j + 1]:

lst[j], lst[j + 1] = lst[j + 1], lst[j] # 後乙個與前乙個交換值

return lst

print(bubble_sort(a))

print(a)

n - i - 1說明:

第一次 i=0 ,n - i - 1 =  n-1,元素一直比較到最後兩位(lst[n-1] 與 lst[n-2]),結束位置為n-1,

完成後最後一位即是最大的數,不用參與下次比較

第二次 i=1, n - i - 1 =  n-2,元素只需要比較到倒數第二位即 lst[n-2] 與 lst[n-3] 進行比較,結束位置為n-2

相信看到這裡你應該懂了n - i - 1的作用

Python3簡單實現氣泡排序

話不多說,直接上 coding utf 8 class bubblesort object resultstr def init self,datas self.datas datas self.datas len len datas def sort self for i in range sel...

Python3 氣泡排序

參考 菜鳥教程 氣泡排序 bubble sort 重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。一輪一輪,直到無需再交換。例 小朋友按身高排序,兩兩比較,矮個子站前面 a 0.9m b 0.8m c 1.1m d 0.75m e 1.24m a b c d e b ...

python3氣泡排序

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