Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Lösung5-3

Java source code icon Aufgabe5_3Loesung.java — Java source code, 1 KB (1971 bytes)

Dateiinhalt

public class Aufgabe5_3Loesung {
	// Kopieren durch Einfügen, aka Insertion-Sort.
	
	public static void main(String[] args) {

		int[] liste1 = new int[] { 125, 3, 6, 5, 32, 1, 69, 55, 99, 12 };

		System.out.print("Unsortiertes Array: ");
		printIntArray(liste1);

		int[] liste2 = sort(liste1);

		System.out.print("Sortiertes Array: ");
		printIntArray(liste2);
	}

	/**
	 * Gibt eine sortierte Kopie des Arrays "numbers" zurueck.
	 * 
	 * @param numbers
	 *            ein beliebiges Array von Zahlen
	 * @return ein sortiertes Array, das die gleichen Zahlen wie das Array
	 *         "numbers" enthaelt
	 * 
	 */
	public static int[] sort(int[] numbers) {
		int[] result = new int[] {};
		for (int i = 0; i < numbers.length; i++) {
			result = insert(numbers[i], result);
		}
		return result;
	}

	/**
	 * Fuegt "element" in ein Kopie eines bereits sortierten Arrays "numbers"
	 * ein, so dass das Ergebnis wieder ein sortiertes Array ist.
	 * 
	 * @param element
	 *            eine Zahl
	 * @param numbers
	 *            ein sortiertes Array
	 * @return ein sortierties Array der Länge numbers.length + 1, welches die
	 *         Zahl "element" sowie alle Zahlen aus dem Array "numbers" enthält.
	 */
	public static int[] insert(int element, int[] numbers) {
		int[] result;
		if (numbers.length < 1) {
			result = new int[] { element };
		} else {
			result = new int[numbers.length + 1];
			int i = 0;
			while (i < numbers.length && numbers[i] <= element) {
				result[i] = numbers[i];
				i++;
			}
			result[i] = element;
			while (i < numbers.length) {
				result[i + 1] = numbers[i];
				i++;
			}
		}
		return result;
	}

	/**
	 * Eine Methode zur Ausgabe eines Arrays auf der Konsole.
	 */
	public static void printIntArray(int[] numbers) {
		System.out.print("{");
		if (numbers.length > 0) {
			System.out.print(numbers[0]);
		}
		for (int i = 1; i < numbers.length; i++) {
			System.out.print(", " + numbers[i]);
		}
		System.out.println("}");
	}
}

Artikelaktionen


Funktionsleiste