class gg124 { // トレース表示は,教科書p125よりも,添え字部分(回,数)が1小さい public static void main(String[] args) { int [] ringo = { 25, 43, 34, 61, 85, 90, 37, 12}; int n = ringo.length; int kankaku = n / 2; while( kankaku != 0){ for(int kai=kankaku; kai<n; kai++){ for(int suu=kai-kankaku; suu>=0; suu=suu-kankaku){ if(ringo[suu] <= ringo[suu+kankaku]){ //トレース表示 System.out.print(kankaku + " " + kai + " " + suu + ": "); for(int i=0; i < n; i++){ System.out.print(ringo[i] + ", "); } System.out.println("Exit"); break; }else{ int temp = ringo[suu]; ringo[suu] = ringo[suu+kankaku]; ringo[suu+kankaku] = temp; //トレース表示 System.out.print(kankaku + " " + kai + " " + suu + ": "); for(int i=0; i < n; i++){ System.out.print(ringo[i] + ", "); } System.out.println("交換"); } } } kankaku = kankaku / 2; } } }