演算法之氣泡排序-python實現
阿新 • • 發佈:2018-11-27
大家好,歡迎收看我的文章,如果感覺我的文章能對您有所幫助,您可以點選關注我,您的支援就是我堅持創作的動力
氣泡排序演算法
比如有6個數: [22,44,33,55,66,77]從大到小排序,對相鄰的兩位進行比較
第一輪
第一次比較: 44,22,33,55,66,77
第二次比較: 44,33,22,55,66,77
第三次比較: 44,33,55,22,66,77
第四次比較: 44,33,55,66,22,77
第五次比較: 44,33,55,66,77,22
經過第一輪比較後, 六個數中最小的數已經在最後面了, 接下來只比較前五個數, 依次類推
第二輪
44,55,66,77,33,22
第三輪
55,66,77,44,33,22
第四輪
66,77,55,44,33,22
第五輪
77,66,55,44,33,22
比較完成
程式碼實現
list0 = [2, 4, 3, 7, 8, 1, 0, 5, 11]
list0 = [22, 44, 33, 55, 66, 77]
# 氣泡排序的思想: 每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置
def maopao(list0):
# 列表長度
length = len( list0) # ==>6
# 外層迴圈重複(length-1)次
for i in range(length - 1):
# 內迴圈依次重複6,5,,...,1(length - i -1)
for j in range(length - i - 1):
if list0[j] < list0[j + 1]:
list0[j], list0[j + 1] = list0[j + 1], list0[j]
return list0
if __name__ == '__main__' :
print(maopao(list0))