16.09.2017 Aufrufe

Vorkurs Informatik

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6<br />

Rekursion<br />

Rekursion ermöglicht es, Algorithmen für viele Probleme besonders kurz und elegant zu formulieren,<br />

indem der Algorithmus, angewendet auf reduzierte Problemversionen, sich wieder selbst<br />

verwendet. Abschnitt 6.1 führt das Prinzip der Rekursion anhand eines weiteren Algorithmus<br />

zum Sortieren einer Folge von Zahlen, dem Sortieren durch Mischen, ein. Abschnitt 6.1.2 zeigt,<br />

wie dieser Algorithmus als Java-Programm unter Verwendung von Funktionen realisiert werden<br />

kann. Dem Sortieren durch Mischen liegt das allgemeine Prinzip des „Divide and Conquer“ zugrunde,<br />

das in Abschnitt 6.2 vorgestellt wird. Algorithmen, die diesem Prinzip folgen, lassen sich<br />

häufig in natürlicher Weise rekursiv formulieren.<br />

6.1 Beispiel: Sortieren einer Menge von Zahlen durch<br />

Mischen<br />

Die Idee des Sortierens durch Mischen besteht darin, das gegebene Problem in kleinere Probleme<br />

einzuteilen, diese dann zu lösen und die Lösung der kleineren Probleme zu einer Gesamtlösung<br />

zusammenzufügen. Mit den beiden Teilproblemen wird analog verfahren, solange die zu sortierende<br />

Folge mehr als ein Element enthält. Wird eine Folge mit nur einer Zahl erreicht, ist die<br />

Lösung trivial: die Ergebnisfolge ist einfach die Folge, die aus dieser Zahl besteht.<br />

6.1.1 Algorithmus<br />

Dieses einleitend verdeutlichte Prinzip des Sortierens durch Mischen realisiert der in der Abbildung<br />

6.1 gezeigte Algorithmus mischSort. Die Eingabe ist wie bei den schon behandelten<br />

Sortieralgorithmen eine Folge a 0 ,a 1 ,...,a n−1 von Zahlen. Gesucht ist eine Anordnung der Eingabewerte<br />

nach steigendem Wert, also a 0 ≤ a 1 ≤ ... ≤ a n−1 . Wie bereits angesprochen besteht<br />

der Algorithmus mischSort zur Handhabung dieser Aufgabe aus drei Schritten.<br />

Im ersten Schritt wird getestet, ob die Eingabefolge nur aus einem Element besteht, d. h. n = 1 ist.<br />

In diesem Fall wird die Eingabefolge unverändert zurückgegeben, da eine einelementige Folge<br />

im Sinne der Problemstellung bereits sortiert ist.<br />

H. Müller, F. Weichert, <strong>Vorkurs</strong> <strong>Informatik</strong>,<br />

DOI 10.1007/978-3-8348-2629-9_6, © Springer Fachmedien Wiesbaden 2013

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!