資料結構與演算法 python排序演算法 氣泡排序

2021-10-08 21:55:13 字數 1192 閱讀 9284

排序演算法(英語:sorting algorithm)是一種能將一串資料依照特定順序進行排列的一種演算法。

排序演算法的穩定性

穩定排序演算法會讓原本有相等鍵值的紀錄維持相對次序。 也就是如果乙個排序演算法是穩定的,當有兩個相等鍵值的紀錄r和s,且在原本的列表中r出現在s之前,在排序過的列表中r也將會是在s之前。

不穩定排序演算法可能會在相等的鍵值中改變紀錄的相對次序,但是穩定排序演算法從來不會如此。不穩定排序演算法可以被特別地實現為穩定。

氣泡排序(英語:bubble sort) 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

氣泡排序的運作過程:

氣泡排序的實現

def

bubble_sort

(alist)

:"""氣泡排序"""

n =len(alist)

for j in

range

(n-1):

# 每次迴圈挑選出最大的數放在n-1-j的位置

count =

0for i in

range(0

, n-

1-j)

:if alist[i]

> alist[i+1]

: alist[i]

, alist[i+1]

= alist[i+1]

, alist[i]

count +=1if

0==count:

return

if __name__ ==

'__main__'

: li =[54

,26,93

,17,77

,31,44

,55,20

]print

(li)

bubble_sort(li)

print

(li)

# [17, 20, 26, 31, 44, 54, 55, 77, 93]

氣泡排序的時間複雜度

python資料結構與演算法 氣泡排序

氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算...

Python 資料結構與演算法 拓撲排序

幾乎在所有的專案,甚至日常生活,待完成的不同任務之間通常都會存在著某些依賴關係,這些依賴關係會為它們的執行順序行程表部分約束。對於這種依賴關係,很容易將其表示成乙個有向無環圖 directed acyclic graph,dag,無環是乙個重要條件 並將尋找其中依賴順序的過程稱為拓撲排序 topol...

資料結構與演算法 python選擇排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...