题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=235
题目说的比较啰嗦,其实就是考冒泡排序,输出交换次数。
/*
* uva299.cpp
*
* Created on: 2013-4-12
* Author: kevinjiang
*/
#include<cstdio>
int bubbleSort(int a[], int n) {
int count = 0;
int changed = 0;
for (int i = 0; i < n - 1; i++) {
changed = 0;
for (int j = n - 1; j > i; j--) {
if (a[j] < a[j - 1]) {
int tmp = a[j];
a[j] = a[j - 1];
a[j - 1] = tmp;
count++;
changed = 1;
}
}
if (!changed)
break;
}
return count;
}
int main() {
int n;
int l;
int swaps;
int carrages[55];
scanf("%d", &n);
while (n--) {
scanf("%d", &l);
for (int i = 0; i < l; i++)
scanf("%d", &carrages[i]);
swaps = bubbleSort(carrages, l);
printf("Optimal train swapping takes %d swaps.\n", swaps);
}
return 0;
}