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

相关主题