python實現冒泡演算法

2021-09-25 20:19:09 字數 1360 閱讀 1270

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實現冒泡演算法排序

第一篇部落格就以冒泡演算法作為先行者吧。冒泡演算法通俗一點的理解就是兩個數值進行比較,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成,就像小魚吐泡泡一樣。氣泡排序演算法具體的步驟大致為 降序為例...