排序

冒泡排序

冒泡排序是最朴素的排序算法。它的核心想法是:从左到右扫一遍,比较相邻的两个元素,逆序就交换。一轮扫完,最大的元素一定被”冒”到了最右边。重复这个过程,每一轮都能多固定一个最大值。

为什么叫”冒泡”

把数组想象成一杯水,大的元素像气泡一样向右浮。每一轮内层循环都是一次”冒泡”——最大的气泡浮到顶。

复杂度

  • 时间:最坏 O(n²),最好 O(n²)(朴素版没有”已排序就提前退出”的优化)
  • 空间:O(1)(原地排序)

试试看

上方输入框可以改数组(逗号分隔),点”应用”或回车生效;也可以用打乱 / 随机 / 重置三个快捷按钮。试试输入一些重复数字(比如 3, 1, 3, 1, 2)看动画是否还能正确跟踪。

在动画里看什么

  • 蓝色:当前正在比较的两个元素
  • 红色:刚刚发生交换的位置
  • 绿色:已经就位、不会再动的元素