1. 程式人生 > >氣泡排序 python實現

氣泡排序 python實現

氣泡排序的思想:

每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置

比如有五個數: 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]

 

 

 

 

參考文章:

python 氣泡排序