冒泡走一趟

10 分钟

从队头到队尾,把每一对相邻同学都比一遍、该换就换,走完这一整趟,最高的那个一定被一路推到了队尾——就像水里的大气泡咕嘟咕嘟浮到水面。这一趟叫"冒泡走一趟"。

#include <iostream>
using namespace std;
int main(){
    int a[3] = {3, 1, 2}, n = 3;
    for(int i = 0; i < n - 1; i++)
        if(a[i] > a[i+1]){
            int t = a[i]; a[i] = a[i+1]; a[i+1] = t;
        }
    cout << a[2] << endl; // 3,最大值冒到末尾
    return 0;
}

注意:一趟只能保证最大的到位,前面的数还没排好。循环条件是 i < n-1,因为每次都要看 a[i+1],写成 i < n 就会越界。

小纸条

[3,1,2] 走一趟冒泡后,最后一个数是几?

登录 后可看答案

冒泡走一趟 · C++ 入门 · op599 课程