實現方法二
實現方法三
測試與對比
氣泡排序複雜度分析
/* 對順序表 data 作交換排序(氣泡排序初級版) */
這段**嚴格意義上說,不算是標準的氣泡排序演算法,因為它不滿足「兩兩比較
相鄰記錄」的氣泡排序思想,它更應該是最最簡單的交換排序而已。它的思路就是讓
每乙個關鍵字,都和它後面的每乙個關鍵字比較,如果大則交換,這樣第一位置的關
鍵字在一次迴圈後一定變成最小值。
:param data: 待排序的序列
:return:
"""length =
len(data)
for i in
range
(length -1)
:for j in
range
(i +
1, length)
:if data[i]
> data[j]
:# 交換數值
正宗的冒泡演算法
i=2 時,我們已經對 9 與 8,8 與 7,……,3 與 2 作了比較,沒有任何資料交換,這就說明此序列已經有序,不需要再繼續後面的迴圈判斷工作了。為了實現這個想法,我們需要改進一下**,增加乙個標記變數 flag 來實現這一演算法的改進。
def
method3
(data)
:"""
優化的冒泡演算法
:param data:
:return:
"""flag =
true
length =
len(data)
for i in
range
(length -1)
:if flag:
flag =
false
for j in
range
(length -
1, i)
:if data[j]
> data[j +1]
: data[j]
, data[j +1]
= data[j +1]
, data[j]
flag =
true
# 如果有資料交換,則 flag 為 true
Python排序演算法(二) 氣泡排序
有趣的事,python永遠不會缺席!如需 請註明出處 小婷兒的python 氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,一層一層的將較大的元素往後移動,其現象和氣泡在上公升過程中慢慢變大類似,故成為氣泡排序。舉個例子...
Python排序演算法(二) 氣泡排序
有趣的事,python永遠不會缺席!如需 請註明出處 小婷兒的python 氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,一層一層的將較大的元素往後移動,其現象和氣泡在上公升過程中慢慢變大類似,故成為氣泡排序。舉個例子...
排序演算法(二) 氣泡排序
每一趟排序 例如第 i 趟,其中 i 0,1,n 2 依次比較相鄰兩個資料元素,如果發生逆序,則交換之 待排資料的最大值 沉 到待排資料的最底部,比如 i 0 時,為第 1 趟排序,資料元素最大者將被交換到最後乙個位置 i 1 時,為第 2 趟排序,資料元素次大者將被交換到最後第二個位置 直至全部待...