描述
老师要给班里的 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;
}