// InsertionSort.java // // CS 101 Class Example import java.util.*; // for Random number generator public class InsertionSort { // --------- Main program--------------------------------------------- public static void main(String[] args) { int n = 10; // default array size if (args.length > 0) { // if provided, n = Integer.parseInt(args[0]); // get array size from command line } int[] a = new int[n]; initArr(a); // initialize array with random numbers System.out.println(); System.out.print("Initial array: "); printArr(a); insertionSort(a); System.out.print("Sorted array: "); printArr(a); } // --------- Insertion Sort ------------------------------------------ public static void insertionSort(int[] a) { for (int i = 1; i < a.length; i++) { insertIth(a, i); } } public static void insertIth(int[] a, int i) { // insert a[i] among sorted a[0] .. a[i-1] int val = a[i]; int index = i-1; while (index >= 0 && val < a[index]) { a[index+1] = a[index]; index--; } a[index+1] = val; } // --------- Helper Methods ------------------------------------------ public static void initArr(int[] a) { // initialize array a with random numbers between 0 and 99 Random rand = new Random(); for (int i = 0; i < a.length; i++) { a[i] = Math.abs(rand.nextInt()) % 100; } } public static void printArr(int[] a) { // print array a for (int i=0; i < a.length; i++) { System.out.print(a[i] + " "); // print all elements on same line } System.out.println(); // print newline } }