Bootstrap

《排队3.0》

描述

老师要给班里的 n 名同学按身高排队。矮个子在左边,高个子在右边。有些同学并没有站在合适的位置上,可以试着让他们交换位置。交换的规则是:从第1名同学开始,依次与右边的同学比较身高,只要比对方高,二人就要交换位置。然后站在第2位的同学再与右边的同学比较,以此类推,直到站在倒数第2位的同学与最后一名同学完成比较。

每一轮交换都能选出未排好队同学中最高的一个并排在合适的位置,相信经过 n−1 轮交换后所有同学都排在了合适的位置上。请你输出排好队后从左到右每名同学的身高,以空格分隔。

输入描述

第1行:一个整数 n。

第2行:n 个正整数,用空格隔开,为初始队列时从左到右每名同学的身高。

输出描述

第1行:排好队后从左到右每名同学的身高,以空格分隔。

样例输入 1 

5
2 5 3 4 1

样例输出 1 

1 2 3 4 5

提示

对于 100% 的数据,1≤n≤100。身高为正整数,且不大于200。

#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n];
    for(int i = 1;i<=n;i++){
        cin>>a[i];
    }
    for(int i = 1;i<=n-1;i++){
        for(int j = 1;j<=n-i;j++){
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
            }
        }
    }
    for(int i = 1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
} 

;