题意:给出一列火车的车厢排列,要求将车厢按车厢号由小到大重新排列,求重新排序时车厢交换的次数。
因为车厢长度不是很大,用冒泡排序,轻松搞定。
#include<stdio.h>
const int maxn=50+10;
int a[maxn];
int main()
{
int N;
while(~scanf("%d",&N)){
while(N--){
int L,c=0;
scanf("%d",&L);
for(int i=0;i<L;i++)
scanf("%d",&a[i]);
for(int i=0;i<L;i++)
for(int j=i+1;j<L;j++){
if(a[i]>a[j]){
int t=a[i];
a[i]=a[j];
a[j]=t;
c++;
}
}
printf("Optimal train swapping takes %d swaps.\n",c);
}
}
return 0;
}
--------------------------------------------------------------------------------------------
Keep It Simple,Stupid!
--------------------------------------------------------------------------------------------