//Author:Pan Daoxi
#include <iostream>
using namespace std;
const int N=101;
int main(){
int n,a[N];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=n-1;i>=1;i--){
for(int j=0;j<i;j++){
if(a[j]>a[j+1]){ // 如果大,就放到后面去,和小的交换位置
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
优化后代码:
//Author:Pan Daoxi
#include <iostream>
using namespace std;
const int N=101;
int main(){
int n,a[N];
bool flag; // 优化:判断交换的开关
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=n-1;i>=1;i--){
flag=true; // 判断是否交换
for(int j=0;j<i;j++){
if(a[j]>a[j+1]){
swap(a[j],a[j+1]);
}
flag=false; // 已经交换
}
if(flag){
break;
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}