手动排一遍

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。

登录 后可看答案

手动排一遍 · C++ 入门 · op599 课程