排序演算法(英語: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
(li)
bubble_sort(li)
(li)
# [17, 20, 26, 31, 44, 54, 55, 77, 93]
python資料結構與演算法 氣泡排序
氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算...
Python 資料結構與演算法 拓撲排序
幾乎在所有的專案,甚至日常生活,待完成的不同任務之間通常都會存在著某些依賴關係,這些依賴關係會為它們的執行順序行程表部分約束。對於這種依賴關係,很容易將其表示成乙個有向無環圖 directed acyclic graph,dag,無環是乙個重要條件 並將尋找其中依賴順序的過程稱為拓撲排序 topol...
資料結構與演算法 python選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...