🫧
时间复杂度
相邻比较冒泡
📖知识引入
🫧相邻比较交换
比较相邻两个元素,大的往后交换,像气泡往上冒
⬆️最大冒到末尾
每轮把当前最大的元素冒泡到末尾
⏱️O(n²)
两层循环,时间复杂度为O(n²)
🔄轮数=n-1
n个元素需要n-1轮冒泡才能全部排好
✨可优化提前退出
如果某轮没有交换说明已排好,可以提前退出
🔍冒泡排序示例
📝冒泡排序示例
💻
点击「运行」查看输出
冒泡排序过程(每轮最大冒到末尾): 初始: [5, 3, 8, 1, 9, 2]
第1轮: 5>3换, 5<8不换, 8>1换, 8<9不换, 9>2换 [3, 5, 1, 8, 2, 9] 9到位! 第2轮: [3, 1, 5, 2, 8, 9] 8到位! 第3轮: [1, 3, 2, 5, 8, 9] 5到位! ... 最终: [1, 2, 3, 5, 8, 9]
┌───┬───┬───┬───┬───┬───┐
│ 5 │ 3 │ 8 │ 1 │ 9 │ 2 │
└───┴───┴───┴───┴───┴───┘
5>3 换! 大的往右移🎯小测验
第1题:冒泡排序每轮把什么移到末尾?
第2题:冒泡排序时间复杂度?
第3题:冒泡排序比较的是哪两个元素?
📝本课知识点
- ✓相邻元素比较
- ✓大的往后交换
- ✓每轮最大冒泡到末尾
- ✓时间复杂度O(n²)
- ✓可优化提前退出
第31课完成!继续探索下一课吧 🚀