JJ プログラム仙人修行日誌

2024/04/20 からは、プログラム仙人修行の日誌を書いてます。

gg124.java

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;
        }
    }
}