/**
 * Klasse zum Einfuegen einer Zahl in ein sortiertes Array an der richtigen Stelle
 *
 */
public class Array {
	
	/**
	 * Methode sortiert eine uebergebene ganze Zahl in ein bereits sortiertes Integer-Array ein
	 * @param number einzusortierende ganze Zahl
	 * @param array sortiertes Array
	 * @return newArray sortiertes Array mit eingefuegter Zahl
	 */
	public static int[] sortInArray(int number, int[] array){
		int[] newArray = new int[array.length+1];
		
		// Einfuege-Zaehler
		int j = 0;
		boolean eingefuegt = false;
		for (int i = 0; i < newArray.length; i++) {
			if (j < array.length) {
				// Solange Zahlen im alten Array kleiner als die einzufuegende Zahl normal einfuegen
				if (array[j] > number && !eingefuegt) {
					newArray[i] = number;
					eingefuegt = true;
				// Sonst Zahl einfuegen und zukuenftig eine Stelle weiter
				} else {
					newArray[i] = array[j];
					j++;
				}
			} else if (!eingefuegt) {
				newArray[i] = number;
			}
		}
		// Neues Array wird zurueckgegeben
		return newArray;
	}
	
	/**
	 * main-Methode fuehrt Test aus
	 * @param args
	 */
	public static void main(String[] args){
		int[] numbers = new int[]{2,5,11,17,32,47,48,59,61,73,88};
		int new_number = 35;
		int[] new_numbers = sortInArray(new_number, numbers);
		
		for (int i=0; i<new_numbers.length; i++){
			// Ausgabe der Einfachheit halber mit Komma am Ende
			System.out.print(new_numbers[i]+",");
		}
	}

}
