// File: SortAlgTest.java

class SortAlgTest {

	public static final int MAX_VAL = 100;
	public static final int NUM_ELEM = 20;

	/**
	 * Test program for testing different sorting routines
	 * encapsulated in SortAlgorithm3.
	 */
	public static void main(String[] args) {
		SortAlgorithm sa = new SortAlgorithm3();
		int[] a = sa.createRandomArray(NUM_ELEM, MAX_VAL);

		int[] a1 = (int[]) a.clone();
		int[] a2 = (int[]) a.clone();
		int[] a3 = (int[]) a.clone();

		System.out.println("Original array");
		printArray(a);
		
		sa.sortA(a1);				
		System.out.println("\nSort A used " + sa.opCount() + " ops.");
		printArray(a1);

		sa.sortB(a2);
		System.out.println("\nSort B used " + sa.opCount() + " ops.");
		printArray(a2);

		sa.sortC(a3);
		System.out.println("\nSort C used " + sa.opCount() + " ops.");
		printArray(a3);
		
		System.out.println("\n");
		
		System.exit(0);
	}

	/**
	 * Prints the elements in the array 'arr'.
	 */
	private static void printArray(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]);
			
			if (i < arr.length - 1) {
				System.out.print(", ");
			}
		}
	}
}

