import java.io.*;

public class HeapSortTest {

	private final static int maxSize = 200;

	public static void main(String[] args) {
		// main() liest Prioritäten von der Standardeingabe und fügt diese 
		// in ein int array ein.
		// Sobald eine Leerzeile gelesen wird, ist die Eingabe beendet 
		int[] a = new int[maxSize];
		int size = 0;
		
		// Eingabestream bereitstellen
		BufferedReader stdin =
			new BufferedReader(
				new InputStreamReader(System.in)
			);

		// Prioritaeten einlesen
		System.out.println("Willkommen zum HeapSortTest!");
		System.out.println("Prioritaeten durch ENTER getrennt eingeben und");
		System.out.println("mit ENTER die Eingabe beenden.");
		
		String str = "";
		do {
			try {
				str = stdin.readLine();
				if(!str.equals("")){
					int n = Integer.parseInt(str);
					a[size++] = n;
				}
			} 
			catch (IOException e) {
				System.err.println("Fehler: Kann nicht von stdin lesen! (" + e + ")");
			} 
			catch (NumberFormatException e) {	
				System.err.println("Warnung: Eingabe ist nicht vom Typ 'int'"
					+ "und wird deshalb ignoriert (" + e + ").");
			}
		}
		while(!str.equals(""));
		
		// Heap als Array mit Prioritaeten ausgeben	zur Kontrolle auf stdout		
		System.out.println("Eingabe:");
		for(int i=0; i<size; i++) {
			System.out.print(a[i] + " ");
		}
		
		// Elemente aufsteigend sortiert ausgeben
		System.out.println("");
		System.out.println("Sortiert:");
		
		HeapSort.sort(a, size);
		
		for(int i=0; i<size; i++) {
			System.out.print(a[i] + " ");
		}
	}
} 