在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。
共两行。
第一行是车厢总数N ,N(≤10000)。
第二行是N个不同的数表示初始的车厢顺序。
package text; import java.util.Scanner; public class maopao { public static void main(String[] args) { int i,s,x,sum=0; Scanner m = new Scanner(System.in); int n = m.nextInt(); int[] a = new int[n]; for(i=0;i<n;i++){ a[i] = m.nextInt(); } while(n>1){ //只有剩最后一个数的时候不用比较 for(s=0;s<n-1;s++){ if(a[s]>a[s+1]){ x=a[s]; a[s] = a[s+1]; a[s+1] =x; sum+=1; } } n-=1; //执行完一次,最后一个数就不用比较了,所以要减去一 } System.out.print(sum); }}