本质是冒泡排序。其实没必要排序,计算下逆序数,即可
代码如下:
#include<stdio.h>
int a[51];
int main()
{
int swap,n,L;
scanf("%d",&n);
while(n--)
{
scanf("%d",&L);
swap=0;
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]) swap++;
}
}
printf("Optimal train swapping takes %d swaps.\n",swap);
}
return 0;
}