python排序演算法 二 氣泡排序演算法

2021-09-24 22:51:57 字數 2167 閱讀 6054

實現方法二

實現方法三

測試與對比

氣泡排序複雜度分析

/* 對順序表 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 趟排序,資料元素次大者將被交換到最後第二個位置 直至全部待...