C++基础知识014[笔记-冒泡排序]
点击蓝色
![]()
关注我们


C++基础知识014-冒泡排序
![]()
冒泡排序详细讲解
冒泡排序
要理解 C++ 中的冒泡排序,我们可以从一个生活化的场景入手 —— 想象一群小朋友排队,我们要让他们按身高从矮到高站好。冒泡排序就像一个 “耐心的管理员”,通过反复比较相邻的人,把高的慢慢挪到后面,就像水里的气泡慢慢往上冒一样,所以叫 “冒泡” 排序。
01
核心思路
假设我们有 5 个小朋友,身高分别是:1.3 米、1.5 米、1.2 米、1.4 米、1.1 米(用数字简化为:3、5、2、4、1)。我们要让他们从矮到高排好(即 1、2、3、4、5)。
冒泡排序的做法是:每次只比较相邻的两个小朋友,如果前面的比后面的高,就让他们交换位置。这样一轮一轮地比,每轮结束后,当前最高的小朋友就会 “冒” 到队伍最后。
02
一步步看冒泡过程
我们用数字[3,5,2,4,1]代表身高,来模拟每一轮的排序:
第 1 轮:把 “最高” 的放到最后
目标:找到 5(最大的数),让它移到最后。
步骤:
-
比较第 1 个和第 2 个:
-
3 和 5 → 3 矮,不用换 → 还是
[3,5,2,4,1] -
比较第 2 个和第 3 个:
-
5 和 2 → 5 高,交换 → 变成
[3,2,5,4,1] -
比较第 3 个和第 4 个:
-
5 和 4 → 5 高,交换 → 变成
[3,2,4,5,1] -
比较第 4 个和第 5 个:
-
5 和 1 → 5 高,交换 → 变成
[3,2,4,1,5]
第 1 轮结束后,最大的 5 已经到最后了(固定不动了)。
第 2 轮:把 “第二高” 的放到倒数第二
目标:找到 4(剩下的最大数),让它移到倒数第二。
注意:最后一个位置的 5 已经排好,不用再比了,只比前 4 个。
步骤:
-
比较第 1 个和第 2 个:
-
3 和 2 → 3 高,交换 → 变成
[2,3,4,1,5] -
比较第 2 个和第 3 个:
-
3 和 4 → 3 矮,不用换 → 还是
[2,3,4,1,5] -
比较第 3 个和第 4 个:
-
4 和 1 → 4 高,交换 → 变成
[2,3,1,4,5]
第 2 轮结束后,4 到了倒数第二(固定不动了)。
第 3 轮:把 “第三高” 的放到倒数第三
目标:找到 3(剩下的最大数),移到倒数第三。
只比前 3 个(因为最后两个已排好):
-
比较第 1 个和第 2 个:
-
2 和 3 → 2 矮,不用换 → 还是
[2,3,1,4,5] -
比较第 2 个和第 3 个:
-
3 和 1 → 3 高,交换 → 变成
[2,1,3,4,5]
第 3 轮结束后,3 到了倒数第三(固定不动了)。
第 4 轮:把剩下的排好
只剩前 2 个需要比较(因为后三个已排好):
-
比较第 1 个和第 2 个:
-
2 和 1 → 2 高,交换 → 变成
[1,2,3,4,5]
排序完成!
03
C++代码怎么写?
用代码实现时,我们需要:
-
用 “数组” 存这些数字
-
(比如
int arr[5] = {3,5,2,4,1};); -
用 “循环” 重复多轮比较(外层循环控制轮数);
-
每轮中用 “循环” 比较相邻元素(内层循环控制每轮的比较次数)。
完整代码示例:

04
关键知识点总结
-
C++基础知识014[笔记-冒泡排序]
原创 乐博趣杨杨 乐博趣机器人开封教育中心 2025年10月29日 19:39 河南
-
✦轮数:
-
n 个元素需要 n-1 轮(最后一个元素不用比);
-
✦每轮比较次数:
-
第 1 轮比 n-1 次,第 2 轮比 n-2 次……(因为后面的元素已排好);
-
✦交换技巧:
-
用临时变量
temp保存值,避免交换时数据丢失(就像交换两个杯子的水,需要一个空杯子过渡)。
通过这个方法,即使是很多数字,也能像排队一样慢慢排整齐。冒泡排序虽然简单,但能帮我们理解 “排序” 的本质 —— 通过比较和交换,让数据按规则排列。
更多推荐
所有评论(0)