题目大意:交换相邻车厢使其最终编号从小到大排列,求要交换机次。
解题思路:冒泡排序加个统计次数的变量。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<stdlib.h>
#include<cmath>
using namespace std;
int num[100];
int main() {
int N;
scanf("%d", &N);
while(N--) {
int L;
scanf("%d", &L);
int count = 0;
for (int i = 0; i < L; i++)
scanf("%d", &num[i]);
for (int i = 0; i < L-1; i++)
for (int j = 0; j < L-i-1; j++)
if (num[j] > num[j+1]) {
int t = num[j];
num[j] = num[j+1];
num[j+1] = t;
count++;
}
printf("Optimal train swapping takes %d swaps.\n", count);
}
return 0;
}