就是冒泡排序,然后记录一下一共交换了多少次
原题:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=4&problem=235&mosmsg=Submission+received+with+ID+11692850
#include <stdio.h> int n; int l; int trains[60]; int bubbleSort() { int i,j,count,temp,swp; count=0; for(i=0;i<l-1;i++) { swp=0; for(j=l-1;j>i;j--) { if(trains[j]<trains[j-1]) { temp=trains[j]; trains[j]=trains[j-1]; trains[j-1]=temp; count++; swp=1; } } if(0==swp) return count; } return count; } int main() { int i; scanf("%d",&n); while(n--) { scanf("%d",&l); for(i=0;i<l;i++) scanf("%d",&trains[i]); printf("Optimal train swapping takes %d swaps.\n",bubbleSort()); } return 0; }