Python,學霸
閱讀指南
原理
例項
輸出
效果
原理
氣泡排序(Bubble Sort)是一種簡單的排序演算法,它重復地遍歷要排序的列表,一次比較兩個元素,如果它們的順序錯誤則交換它們的位置。透過多次遍歷整個列表,直到不再需要交換,即可完成排序。具體來說,氣泡排序的基本思路如下:
從頭開始,依次比較相鄰的兩個元素,如果前一個元素大於後一個元素,則交換它們的位置。
繼續向列表的下一個元素移動,重復上述比較和交換過程,直到到達列表的末尾。
重復以上步驟,每次遍歷都會使列表中最大的元素沈底(類似氣泡向上升),直至列表完全有序。
例項
import time
def bubble_sort(data):
start_time = time.time()
n = len(data)
for i in range(n):
for j in range(n - i - 1):
if data[j] > data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j]
#打印排序結果
print_data(data)
#增加等待時間
time.sleep(0.5)
end_time = time.time()
#計算排序用時
sort_time = end_time - start_time
print("\n氣泡排序用時:", sort_time)
#打印排序結果
def print_data(data):
print('\r', ' '.join(['*' * num for num in data]), end='')
data = [5, 9, 1, 4, 6]
print("原始數據:", ' '.join(['*' * num for num in data]))
bubble_sort(data.copy())
輸出
原始數據: ***** ********* * **** ******
* **** ***** ****** *********
氣泡排序用時: 5.009825706481934