/*
 * @(#)SortAlgorithm.java	1.0 04/05/24
 */
 
/**
 * An interface with 3 sorting algorithms and a method 
 * for retrieving the number of comparison operations performed
 * in the most recent call to one of the sorting routines.
 */
public interface SortAlgorithm {
	/**
     * Sorts the integer array 'arr' using unknown algorithm "A".
     */
    public void sortA(int[] arr);
    
	/**
     * Sorts the integer array 'arr' using unknown algorithm "B".
     */
    public void sortB(int[] arr);

	/**
     * Sorts the integer array 'arr' using unknown algorithm "C".
     */        
    public void sortC(int[] arr);
    
    /**
     * Returns the number of comparison operations performed
     * during the most recent call to one of sortA, sortB, or sortC.
     */    
    public long opCount();

    /**
	 * Creates an integer array of size 'numElem' filled with 
	 * uniformely distributed random numbers from 0 to 'maxVal'.
	 */
	public int[] createRandomArray(int numElem, int maxVal);
}

