Python排序演算法---氣泡排序
阿新 • • 發佈:2021-01-25
1.氣泡排序定義
氣泡排序(Bubble Sort)也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端。
2.步驟(升序)
1.較相鄰的元素。如果第一個比第二個大,則交換相鄰元素。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後一個。
5.總共需要進行n-1次氣泡排序過程,n為元素個數。
圖例:
氣泡排序為穩定排序,若判斷時為 if l[j] >= l[j+1],則為不穩定排序。
3.時間複雜度和空間複雜度
最優時間複雜度:O(n)
最壞時間複雜度:O(n^2)
空間複雜度:O(1)
4.Python程式碼實現
# 氣泡排序法
def bubble_Sort(arr):
# 計算列表長度
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1 ):
if arr[j] > arr[j + 1]:
# a = arr[j+1]
# arr[j + 1] = arr[j]
# arr[j] = a
arr[j], arr[j+1] = arr[j+1], arr[j]
array = [61, 29, 25, 12, 22, 39, 89]
print("原列表:")
print(array)
bubble_Sort(array)
print("排序後的列表:" )
print(array)
結果: