📊算法学习
算法可视化器
通过动画直观理解算法的执行过程,支持步进控制和速度调节
速度: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)
冒泡排序的名字来源于排序过程中较大的元素会像"气泡"一样逐渐"浮"到数组的末端。
执行步骤:
- 从数组的第一个元素开始,依次比较相邻的两个元素
- 如果前一个元素比后一个元素大,就交换它们的位置
- 这样一轮下来,最大的元素就会"冒泡"到数组的最后
- 重复上述过程,每次都会把当前未排序部分的最大值放到正确位置
- 直到没有需要交换的元素为止
💡 关键理解:每一轮遍历都会把当前最大的元素"冒泡"到正确位置,所以第 i 轮结束后,最后 i 个元素已经是有序的。