📊算法学习

算法可视化器

通过动画直观理解算法的执行过程,支持步进控制和速度调节

速度:50%
数组大小:30
步骤: 0 / -

冒泡排序

重复遍历数组,比较相邻元素并交换顺序错误的元素

时间复杂度

最好:O(n)
平均:O(n²)
最坏:O(n²)

空间复杂度

O(1)

稳定性

✓ 稳定

实时统计

0
比较次数
0
交换次数
30
数组大小
algorithm.js
1
function bubbleSort(arr) {
2
  for (let i = 0; i < n - 1; i++) {
3
    for (let j = 0; j < n - i - 1; j++) {
4
      if (arr[j] > arr[j + 1]) {
5
        swap(arr[j], arr[j + 1]);
6
      }
7
    }
8
  }
9
}

📚算法详解

冒泡排序 (Bubble Sort)

冒泡排序的名字来源于排序过程中较大的元素会像"气泡"一样逐渐"浮"到数组的末端。

执行步骤:

  1. 从数组的第一个元素开始,依次比较相邻的两个元素
  2. 如果前一个元素比后一个元素大,就交换它们的位置
  3. 这样一轮下来,最大的元素就会"冒泡"到数组的最后
  4. 重复上述过程,每次都会把当前未排序部分的最大值放到正确位置
  5. 直到没有需要交换的元素为止

💡 关键理解:每一轮遍历都会把当前最大的元素"冒泡"到正确位置,所以第 i 轮结束后,最后 i 个元素已经是有序的。

黔ICP备2025060191号贵公网安备52032502000122号
举报邮箱:sword39@qq.com