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 程式碼。