冒泡排序是一種排序算法,這個算法的名字由來是因為元素會經由交換慢慢“浮”到數列的頂端,就如同氣泡上浮一樣,故名“冒泡排序”。
冒泡排序原理是,從初始位置開始, 每次對相鄰兩個資料進行比較, 如順序無誤保持位置不變, 順序錯誤則交換位置, 不斷進行下一次比較, 直至資料順序調整完畢。
執行個體說明:
對“3 6 5 7 2” 從大到小進行排序
經過多輪多次比較完成排序,從中總結規律:
- 如果有n個數參與排序, 則需要比較輪次為n-1輪。
- 每一輪比較結束後至少有一個數到達正确位置。
- 如果有n個數參與排序, 則每輪比較次數最多為n-1次。
- 随着輪次增加, 每輪需要比較的資料越來越少。
現在我們已經了解了冒泡排序算法的原理,可以開始在Python中實作冒泡排序。
s=[3,6,5,7,2]
print("參與排序的資料: ",s)
for k in range(0,len(s)-1): #控制比較輪數
for i in range(0,len(s)-k-1): #每輪比較次數
if s[i]>s[i+1]: #判斷相鄰兩數值的大小
s[i],s[i+1]=s[i+1],s[i] #符合判斷條件情況,交換位置
print("第",i+1,"次比較結果: ",s) #顯示比較過程
print("第",k+1,"輪比較結果:",s) #顯示目前結果
print()
冒泡排序是衆多排序算法之一,它非常容易實作,但它并非是最好的排序算法。它的執行效率很低,如果清單中的元素數量增加一倍,則使用冒泡算法對它們進行排序所需的時間将增加四倍。
感謝閱讀,關注我,精彩繼續!