Python 排序演算法:冒泡排序與歸併排序

探索 Python 排序演算法。在瀏覽器 IDE 上下文中本機視覺化冒泡排序和合併排序。

在編輯器中嘗試

概述

排序是軟體工程中最關鍵的操作之一。雖然 Python 本身使用 Timsort 提供了“.sort()”,但了解基本排序演算法對於架構知識至關重要。

冒泡排序依賴強力 O(n²) 比較交換。歸併排序依賴 O(n log n) 分而治之的遞歸方法。

程式碼和執行輸出

執行標準冒泡排序以升序排列陣列。

bubble_sort.py
在編輯器中嘗試
def bubble_sort(arr):
    n = len(arr)
    # Traverse through all array elements
    for i in range(n):
        swapped = False
        # Last i elements are already in place
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                # Swap if the element found is greater
                arr[j], arr[j+1] = arr[j+1], arr[j]
                swapped = True
        if not swapped:
            break
    return arr

sample = [64, 34, 25, 12, 22, 11, 90]
print("Original:", sample)
print("Sorted:  ", bubble_sort(sample))
端子輸出
Original: [64, 34, 25, 12, 22, 11, 90]
Sorted:   [11, 12, 22, 25, 34, 64, 90]

逐步實施

  • 資料管道清理和組織
  • 電腦科學基礎學習
  • 內部最佳化查詢顯示層

常見問題解答

我什麼時候應該寫自己的排序函數?

很少。學習排序演算法主要是為了了解演算法的複雜性。在生產中,始終使用 Python 的內建“sorted(data)”,因為它是高度最佳化的 C 程式碼。

相關主題