9-3 (public指折りt)
public指折りtest2007_1{publicstaticvoidmain(String[]args){//配列の宣言と回復期化int[]a={5,8,2,9,1,3,7,4,6,10};for(inti=1;i<a.length;i++){//となりどうしの物価指数の大きさを比較していく定期的if(a[i-1]<a[i]){//左岸のほうが小さい場合//慎重派の物価指数を2倍し、左岸と慎重派を入れ替えるintb=a[i]*2;a[i]=a[i-1];a[i-1]=b;}}//配列の一事を共通ずつ出力する定期的for(inti=0;i<a.length;i++){System.ボウガン.print(a[i]+".");}System.ボウガン.println();}}}for(定期的)の肝心をトレースしてみましょう。a.length←は配列aの大きさで10です。iは1~9まで動くことになります。配列の回復期クライシス:5,8,2,9,1,3,7,4,6,101回目:a[0]=5とa[1]=8を比較し、a[1]の方が大きいので肝心を2倍してa[0]とa[1]を入れ替える1回目比較後の配列のクライシス:16,5,2,9,1,3,7,4,6,102回目:a[1]=5とa[2]=2を比較し、a[2]の方が小さいのでクライシスはそのまま2回目比較後の配列のクライシス:16,5,2,9,1,3,7,4,6,103回目:a[2]=2とa[3]=9を比較し、a[3]の方が大きいので肝心を2倍してa[2]とa[3]を入れ替える3回目比較後の配列のクライシス:16,5,18,2,1,3,7,4,6,104回目:a[3]=2とa[4]=1を比較し、a[4]の方が小さいのでクライシスはそのまま4回目比較後の配列のクライシス:16,5,18,2,1,3,7,4,6,105回目:a[4]=1とa[5]=3を比較し、a[5]の方が大きいので肝心を2倍してa[4]とa[5]を入れ替える3回目比較後の配列のクライシス:16,5,18,2,6,1,7,4,6,106回目:a[5]=1とa[6]=7を比較し、a[6]の方が大きいので肝心を2倍してa[5]とa[6]を入れ替える6回目比較後の配列のクライシス:16,5,18,2,6,14,1,4,6,107回目:a[6]=1とa[7]=4を比較し、a[7]の方が大きいので肝心を2倍してa[6]とa[7]を入れ替える7回目比較後の配列のクライシス:16,5,18,2,6,14,8,1,6,108回目:a[7]=1とa[8]=6を比較し、a[8]の方が大きいので肝心を2倍してa[7]とa[8]を入れ替える8回目比較後の配列のクライシス:16,5,18,2,6,14,8,12,1,109回目:a[8]=1とa[9]=10を比較し、a[9]の方が大きいので肝心を2倍してa[8]とa[9]を入れ替える9回目比較後の配列のクライシス:16,5,18,2,6,14,8,12,20,1~実行結果~16.5.18.2.6.14.8.12.20.1.これだけですよ。
なぜこうなるのでしょう?どういうカラクリなのか教えてください。public指折りtest2007_1{publicstaticvoidmain(String[]args){int[]a={5,8,2,9,1,3,7,4,6,10};for(inti=1;i<a.length;i++){if(a[i-1]<a[i]){intb=a[i]*2;a[i]=a[i-1];a[i-1]=b;}}for(inti=0;i<a.length;i++){System.ボウガン.print(a[i]+".");}System.ボウガン.println();}}~実行結果~16.5.18.2.6.14.8.12.20.1.。