JAVAソートアルゴリズム--ソートを挿入



/**
 * JAVA    --    
 * 
 * @author     JAVA      32413139
 * 
 */
public class Test {
  public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4 }; //       

  public static void main(String args[]) {
    int i; //       
    int Index = a.length;//       

    System.out.print("   : ");
    for (i = 0; i < Index - 1; i++)
      System.out.print(" \t" + a[i]);
    System.out.println("");

    InsertSort(Index - 1); //     
    //      
    System.out.print("   : ");
    for (i = 0; i < Index - 1; i++)
      System.out.print("\t " + a[i]);
    System.out.println("");
  }

  public static void InsertSort(int Index) {
    int i, j, k; //       
    int InsertNode; //        

    for (i = 1; i < Index; i++) //       
    {
      InsertNode = a[i]; //         
      j = i - 1; //           
      //         
      while (j >= 0 && InsertNode < a[j]) {
        a[j + 1] = a[j];
        j--;
      }
      a[j + 1] = InsertNode; //      
      //         
      System.out.print("   : ");
      for (k = 0; k < Index; k++)
        System.out.print(" " + a[k] + " ");
      System.out.println("");
    }
  }
}

実行結果
ソート前:10 32 1 9 5 7 12 0 4
ソート中:10 32 1 9 5 7 12 0 4
ソート中:1 10 32 9 5 7 12 0 4
ソート中:1 9 10 32 5 7 12 0 4
ソート中:1 5 9 10 32 7 12 0 4
ソート中:1 5 7 9 10 32 12 0 4
ソート中:1 5 7 9 10 12 32 0 4
ソート中:0 1 5 7 9 10 12 32 4
ソート中:0 1 4 5 7 9 10 12 32
ソート後:0 1 4 5 7 9 10 12 32