氣泡排序 python實現
阿新 • • 發佈:2018-11-20
氣泡排序的思想:
每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置
比如有五個數: 12, 35, 99, 18, 76, 從大到小排序, 對相鄰的兩位進行比較
- 第一趟:
- 第一次比較: 35, 12, 99, 18, 76
- 第二次比較: 35, 99, 12, 18, 76
- 第三次比較: 35, 99, 18, 12, 76
- 第四次比較: 35, 99, 18, 76, 12
經過第一趟比較後, 五個數中最小的數已經在最後面了, 接下來只比較前四個數, 依次類推
- 第二趟
99, 35, 76, 18, 12 - 第三趟
99, 76, 35, 18, 12 - 第四趟
99, 76, 35, 18, 12
比較完成
實現思路 :
使用雙重for迴圈,內層變數為j, 外層為i,在內層迴圈中不斷的比較相鄰的兩個值(j, j+1)的大小,如果j+1的值大於j的值,交換兩者位置,每迴圈一次,外層的i增加1,等到i等於n-1的時候,結束迴圈
nums = [5,7,45,54,93,36,1] def bubble_Sort(nums): for i in range(len(nums)-1): # 這個迴圈負責設定氣泡排序進行的次數 for j in range(len(nums)-i-1): # j為列表下標 if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums[j] return nums print(bubble_Sort(nums)) [1, 5, 7, 36, 45, 54, 93]
參考文章: