CS 216 - Data Structures
Homework #7


Due: Wednesday 3/27 at the beginning of class

NOTE: This work is to be done in groups of 2-3.

Heapsort

Define a class HeapSorter<E extends Comparable<E>> with a default constructor and a method public void sort(E[] a) that sorts a in place without making use of an additional array.  You are encouraged to adapt the text pseudocode.  (Warning: Pseudocode arrays use 1-based rather than 0-based indexing, so take extra care with off-by-one errors.)  Here is some sample test code illustrating one possible use:

	Scanner in = new Scanner(System.in);
	System.out.print("How many integers? ");
	int size = in.nextInt();
	System.out.print("How many possible random values? ");
	int values = in.nextInt();
	Integer[] array = new Integer[size];
	Random random = new Random();
	for (int i = 0; i < size; i++)
	    array[i] = random.nextInt(values);
	new HeapSorter().sort(array);
	for (int i = 0; i < size - 1; i++)
	    if (array[i] > array[i + 1]) {
		System.out.println("Array not sorted");
		System.exit(1);
	    }
	System.out.println("Array sorted");