當前位置: 妍妍網 > 碼農

Python冒泡演算法及原理

2024-03-05碼農

Python,學霸

  • 閱讀指南

  • 原理

  • 例項

  • 輸出

  • 效果

  • 原理

    氣泡排序(Bubble Sort)是一種簡單的排序演算法,它重復地遍歷要排序的列表,一次比較兩個元素,如果它們的順序錯誤則交換它們的位置。透過多次遍歷整個列表,直到不再需要交換,即可完成排序。具體來說,氣泡排序的基本思路如下:

  • 從頭開始,依次比較相鄰的兩個元素,如果前一個元素大於後一個元素,則交換它們的位置。

  • 繼續向列表的下一個元素移動,重復上述比較和交換過程,直到到達列表的末尾。

  • 重復以上步驟,每次遍歷都會使列表中最大的元素沈底(類似氣泡向上升),直至列表完全有序。

  • 例項


    import time
    def bubble_sort(data):
    start_time = time.time()
    n = len(data)
    for i in range(n):
    for j in range(n - i - 1):
    if data[j] > data[j + 1]:
    data[j], data[j + 1] = data[j + 1], data[j]
    #打印排序結果
    print_data(data)
    #增加等待時間
    time.sleep(0.5)
    end_time = time.time()
    #計算排序用時
    sort_time = end_time - start_time
    print("\n氣泡排序用時:", sort_time)
    #打印排序結果
    def print_data(data):
    print('\r'' '.join(['*' * num for num in data]), end='')
    data = [5, 9, 1, 4, 6]
    print("原始數據:"' '.join(['*' * num for num in data]))
    bubble_sort(data.copy())

    輸出

    原始數據: ***** ********* * **** ******
     * **** ***** ****** *********
    氣泡排序用時: 5.009825706481934

    效果