电脑知识铺
第二套高阶模板 · 更大气的阅读体验

冒泡排序方法原理:像水泡一样慢慢理清数据顺序

发布时间:2025-12-09 13:48:14 阅读:172 次

你有没有试过整理一堆杂乱的成绩单,从低到高排好?如果每次只比较相邻两个数,大的往后挪,小的往前移,重复几轮后,整个列表就有序了。这个过程,就是冒泡排序的核心思路。

它是怎么“冒泡”的?

名字听起来挺有趣,其实很形象。每一轮比较中,最大的那个数会像水中的气泡一样,慢慢地“浮”到最右边。下一轮再对剩下的数做同样的事,直到全部排好。

举个例子,有数组 [5, 3, 8, 4, 2]。第一轮从头开始两两比较:

  • 5 和 3 比,5 大,交换 → [3, 5, 8, 4, 2]
  • 5 和 8 比,5 小,不换 → [3, 5, 8, 4, 2]
  • 8 和 4 比,8 大,交换 → [3, 5, 4, 8, 2]
  • 8 和 2 比,8 大,交换 → [3, 5, 4, 2, 8]

这一轮结束,最大的数 8 已经“冒”到最后。下一轮继续对前四个数操作,重复这个过程。

代码长什么样?

用 Python 写一个简单的冒泡排序,看起来是这样的:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

# 使用示例
nums = [5, 3, 8, 4, 2]
bubble_sort(nums)
print(nums)  # 输出 [2, 3, 4, 5, 8]

外层循环控制轮数,内层循环做相邻比较。每次把当前最大的数“推”到正确位置。

效率怎么样?

它简单易懂,适合教学和小数据量场景。但要是数据多了,比如上千个数字,它的速度就明显慢了。因为最坏情况下要比较 n² 次,属于时间复杂度较高的算法。

就像你用手一一对比几十本书的厚度来排序,能完成,但不如找个更聪明的办法快。

尽管如此,在某些特定条件下,比如数据几乎已经有序时,加个标志位优化,它可以提前结束,效率也能提升不少。