天天看點

Python算法:冒泡排序算法在Python中實作的詳細說明

作者:資訊科技雲課堂
Python算法:冒泡排序算法在Python中實作的詳細說明

冒泡排序是一種排序算法,這個算法的名字由來是因為元素會經由交換慢慢“浮”到數列的頂端,就如同氣泡上浮一樣,故名“冒泡排序”。

Python算法:冒泡排序算法在Python中實作的詳細說明

冒泡排序原理是,從初始位置開始, 每次對相鄰兩個資料進行比較, 如順序無誤保持位置不變, 順序錯誤則交換位置, 不斷進行下一次比較, 直至資料順序調整完畢。

Python算法:冒泡排序算法在Python中實作的詳細說明

執行個體說明:

對“3 6 5 7 2” 從大到小進行排序

Python算法:冒泡排序算法在Python中實作的詳細說明
Python算法:冒泡排序算法在Python中實作的詳細說明

經過多輪多次比較完成排序,從中總結規律:

  • 如果有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()           

冒泡排序是衆多排序算法之一,它非常容易實作,但它并非是最好的排序算法。它的執行效率很低,如果清單中的元素數量增加一倍,則使用冒泡算法對它們進行排序所需的時間将增加四倍。

感謝閱讀,關注我,精彩繼續!