【JAVA】UVA 299 - Train Swapping
題目大意:首行輸入有幾台車需要排列,第二行輸入有幾節車廂,第三行輸入車廂的號碼,最後輸出需要幾次才能將車廂號碼由小到大排序完成(一次只能和一台換)。
解題方向:使用氣泡排序法(Bubble Sort)
範例:假設今天有4節車廂,號碼為4,3,2,1
,依照氣泡排序法排序:
4 3 2 1
3 2 1 4 3次(4→3,4→2,4→1)
2 1 3 4 2次(3→2,3→1)
1 2 3 4 1次(2→1)
####################
6次
import java.util.*;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int cases=sc.nextInt();
for(int i =0;i<cases;i++){
int L = sc.nextInt();
int arr[]=new int[L];
for(int j=0;j<L;j++){
arr[j] = sc.nextInt();
}
int count=0;
for(int j=0;j<L-1;j++){
for(int k=0;k<L-j-1;k++){
if(arr[k]>arr[k+1]){
int temp=arr[k];
arr[k] = arr[k+1];
arr[k+1] = temp;
count++;
}
}
}
System.out.println("Optimal train swapping takes "+count+" swaps.");
}
}
};