insertionsort.java

来自「Java 入门书的源码」· Java 代码 · 共 45 行

JAVA
45
字号
//Copyright (c) 1998, Arthur Gittleman
//This example is provided WITHOUT ANY WARRANTY either expressed or implied.

/* Sorts an array of data using the
 * insertion sort algorithm.  Uses 
 * data from the user or random data.
 */

import iopack.Io;

public class InsertionSort {
  public static void display(int [] anArray) {
    System.out.print("{");
    for (int i=0; i<anArray.length; i++) { 
      if (i!=0) System.out.print(",");
      System.out.print(anArray[i]);
    }
    System.out.println("}");
  }
  public static void main(String [] args)  {
    int size = Io.readInt("Enter the number of data items");
    int[] item = new int[size];      // allocate array to hold data        
    char enter = Io.readChar("Enter 'Y' to enter data, 'N' for random data"); 
    if (enter=='Y' || enter=='y')
      for (int i=0; i<size; i++)
         item[i] = Io.readInt("Enter item[" + i + "]");
    else
      for (int i=0; i<size; i++)
         item[i] = (int)(100*Math.random());
    System.out.print("The data to sort is ");
    display(item);
    for (int i=1; i<size; i++) {
      int current = item[i]; 
      int j = 0;
      while (current > item[j]) j++;
      for (int k=i; k>j; k--)
        item[k] = item[k-1];
      item[j] = current;
    }
    System.out.print("The sorted data is ");
    display(item);
    Io.readString("Press any key to exit");   // Added for IDE use
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?