1. 程式人生 > 其它 >Python排序演算法---氣泡排序

Python排序演算法---氣泡排序

技術標籤:Python學習演算法排序演算法python

1.氣泡排序定義

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

2.步驟(升序)

1.較相鄰的元素。如果第一個比第二個大,則交換相鄰元素。
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
3.針對所有的元素重複以上的步驟,除了最後一個。

4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
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)

結果:
在這裡插入圖片描述