bubblesort.py
----------------------
氣泡排序的實現
@author: xiaozhi
@date: 2019-08-03
lista = [34, 19, 20, 30, 10, 5, 88, 40]
for i in range(len(lista) -1): # 交換輪次,數的個數減1
for j in range(len(lista)-1): # 每乙個輪次兩個相鄰的數都要比一遍
if lista[j]>lista[j+1]: # 如果這個數比它後面的數大
lista[j],lista[j+1] = lista[j+1],lista[j] # 就交換它們的位置,後移一位
pass
pass
print(lista)
以下是詳細步驟:
# lista = [34, 19, 20, 30, 10, 5, 88, 40]
# # 第一輪
# [19,34,20,30,10,5,88,40]
# [19,20,34,30,10,5,88,40]
# [19,20,30,34,10,5,88,40]
# [19,20,30,10,34,5,88,40]
# [19,20,30,10,5,34,88,40]
# [19,20,30,10,5,34,40,88] # 第一次記憶體迴圈結束
## # 第二輪
# [19,20,30,10,5,34,40,88]
# [19,20,10,30,5,34,40,88]
# [19,10,20,30,5,34,40,88]
# [10,19,20,30,5,34,40,88] # 第二次記憶體迴圈結束
## # 第三輪
# [10,19,20,30,5,34,40,88]
# [10,19,20,5,30,34,40,88]
# [10,19,5,20,30,34,40,88]
# [10,5,19,20,30,34,40,88]
# [5,10,19,20,30,34,40,88] # 第三次記憶體迴圈結束
# 注意:其實每輪排序都會迴圈 i - 1 次,即數的個數減1,本題迴圈次數應為7次,
但由於有些迴圈沒有迴圈7次就已經排好序了,所以將其中多餘的幾次沒有寫出來。
# 排序完成
# 排序前: lista = [34, 19, 20, 30, 10, 5, 88, 40]
# 排序後: lista = [5, 10, 19, 20, 30, 34, 40, 88]
python實現冒泡演算法
演算法思想 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換位置 比如有五個數 12,35,99,18,76,從大到小排序,對相鄰的兩位進行比較 第一趟 第一次比較 35,12,99,18,76 第二次比較 35,99,12,18,76 第三次比較 35,99,18,12,76 第四次比較 3...
Python實現氣泡排序演算法
第一天學習python寫的程式,函式和控制語句沒有括號總感覺有頭沒尾怪怪的,寫長了會不會連語句在什麼控制流裡都搞蒙了呢?coding utf 8 氣泡排序演算法 def bubble sort list,n exchange n 1 while exchange 0 bound exchange e...
python實現冒泡演算法排序
第一篇部落格就以冒泡演算法作為先行者吧。冒泡演算法通俗一點的理解就是兩個數值進行比較,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成,就像小魚吐泡泡一樣。氣泡排序演算法具體的步驟大致為 降序為例...