氣泡排序就是把小的元素往前調或者把大的元素往後調。比較相鄰的兩個元素,如果兩個元素相等,不發生交換。這個應該算原理吧。
時間複雜度: 因為存在那麼一種情況,陣列無需排序,但是,演算法執行的時候該比還是要比的,所以最樂觀的情況下,時間複雜度為o(n)。最差的情況下為o(n^2),事實上,一般平均時間複雜度都是o(n^2)。
算了,廢話不多說。
import datetime
import random
def bubble_sort(array):
for i in range(len(array) - 1):
for j in range(len(array) - i - 1):
if array[j] > array[j + 1]:
array[j], array[j + 1] = array[j + 1], array[j]
return array
array = [i for i in range(0, 100, 3)] # 隨機數列
random.shuffle(array)
print("array ", len(array), array) # [0, 3, 6, 9, 12, 15, 18]
# 開始時間
start = datetime.datetime.now()
# 輸出
print("result", bubble_sort(array))
# 結束時間
end = datetime.datetime.now()
# 輸出
print("final is in ", end - start)
本來氣泡排序是不準備寫的,這個排序稍慢了一點,但也算穩定。今天偶然看到了它,既然如此就拿出來寫寫。 Python排序演算法 氣泡排序
def bubblesort seq length len seq for i in range length for j in range length 1,i,1 if seq j 1 seq j seq j 1 seq j seq j seq j 1 if name main seq 2,9,...
python 排序演算法 氣泡排序
所謂氣泡排序就是 將乙個數列中的數字兩兩之間進行比較,如果第乙個元素大於或小於第二個元素,那麼就將兩個元素位置交換,然後這個小或大值再往下兩兩比較,使最大或最小值慢慢浮到數列的最頂端,這樣的排序演算法我們稱之為氣泡排序。1 首先要獲取乙個數列,或者說乙個容器,那麼len 容器 2,否則我想排序就沒有...
Python氣泡排序演算法
coding utf 8 氣泡排序演算法 import random fenshu int input 請輸入考試滿分 renshu int input 請輸入考試人數 sortsre input 倒敘 正序 請選擇 y n while sortsre y and sortsre n print 您...