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 代码。