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

你可能感兴趣的:(java,算法,J#)