public class TestMaxHeap {

    public static void main(String[] args) {

	// create array:
	Integer[] a = new Integer[Integer.parseInt(args[0])];
	for (int i=0;i<a.length;i++)
	    a[i]=new Integer(i);
	print(a);

	// sort array (descending):
	print(heapSort(a));
	
    }
    
    public static Object[] heapSort(Object[] a) {
	MaxHeap uriah = new MaxHeap();
	Object[] result = new Object[a.length];

	for (int i = 0; i < a.length; i++)
	    uriah.put(a[i]);

	System.out.println(uriah.toTree());

	for (int i = 0; i < a.length; i++)
	    result[i] = uriah.get();
	
	return result;
    }

    public static void print(Object[] foo) {
	for (int i = 0; i < foo.length; i++) 
	    System.out.print (foo[i] + " ");
	System.out.println();
    }
}
