手动排一遍
约 10 分钟
光看代码容易晕,不如拿 5 张写了数字的纸条摆在桌上,照冒泡的规则用手比、用手换。亲手走一遍,代码里每一步在干嘛就全懂了。
#include <iostream>
using namespace std;
int main() {
int a[5] = {3, 1, 4, 1, 5}, n = 5; // 就用这排纸条边做边对
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - 1 - i; j++)
if (a[j] > a[j+1]) {
int t = a[j]; a[j] = a[j+1]; a[j+1] = t;
}
for (int i = 0; i < n; i++) cout << a[i] << " "; // 1 1 3 4 5
return 0;
}
拿 3 1 4 1 5 试:每次只比相邻两张,别跳着比。把每走完一趟的样子记成一行,就能亲眼看清数字是怎么一步步归位的。
小纸条
用纸条排 3 1 4 1 5。
登录 后可看答案