SimpleSort.java



/** ソートのアルゴリズム(選択法) */
public class SimpleSort {

  /** 処理の開始のメソッド(確認用) */
    public static void main( String[] args ) {

  // 確認用のサンプルデータ
        int[] data
             = { 10, 75, 24, 32, 98,
                 72, 88, 43, 60, 35,
                 54, 62,  2, 12, 82,
               };

   //ソートの作業
        sort( data );
    }

  /** ソートの処理を実行するメソッド */
    public static void sort( int[] data ) {

        for( int i=0; i<data.length-1; i++ ) {
            maxN( data, i );
        }
    }

  /** 与えられた配列の n番目以降から最大値を探し、
      最大値とn番目の値を交換する */
    private static void maxN( int[] data, int n ) {

        int max = data[n];
        int maxIndex = n;
        for( int i=n+1; i<data.length; i++ ) {
             if( data[i] > max ) {
                 max = data[i];
                 maxIndex = i;
             }
        }
        data[maxIndex] = data[n];
        data[n] = max;

   //ソートの作業の確認
        print( data );
    }

  /** 現在の作業状況を出力するメソッド */
    public static void print( int[] data ) {

        for( int i=0; i<data.length; i++ ) {
            System.out.print( data[i] + "," );
        }
        System.out.println( "" );  //改行
    }
}