If you're seeing this message, it means we're having trouble loading external resources on our website.

Wenn du hinter einem Webfilter bist, stelle sicher, dass die Domänen *. kastatic.org und *. kasandbox.org nicht blockiert sind.

Hauptinhalt

Teile-und-herrsche-Algorithmen

Die beiden Sortieralgorithmen, die wir bisher angeschaut haben, Auswahl sortieren und Insertionsort, haben Worst-Case-Laufzeiten von Θ(n2). Wenn die Größe des Eingabe-Arrays groß ist, können diese Algorithmen lange laufen. In diesem und dem folgenden Tutorial werden wir zwei weitere Sortieralgorithmen kennenlernen deren Laufzeiten besser sind: Mergesort und Quicksort. Insbesondere ist die Laufzeit von Mergesort in jedem Fall Θ(nlgn) , und Quicksort läuft in Θ(nlgn) sowohl im besten Fall als auch im Durchschnitt. Seine schlechteste Laufzeit ist Θ(n2). Hier ist eine Tabelle dieser vier Sortieralgorithmen und ihre jeweiligen Laufzeiten:
AlgorithmusWorst-case LaufzeitBest-case LaufzeitAverage-case Laufzeit
Auswahl sortierenΘ(n2)Θ(n2)Θ(n2)
InsertionsortΘ(n2)Θ(n)Θ(n2)
MergesortΘ(nlgn)Θ(nlgn)Θ(nlgn)
QuicksortΘ(n2)Θ(nlgn)Θ(nlgn)

Teile-und-Herrsche

Mergesort als auch Quicksort liegt ein gemeinsames algorithmisches Paradigma auf der Grundlage von Rekursion zugrunde. Dieses Paradigma, Teile-und-Herrsche , zerlegt ein Problem in Unterprobleme, die dem ursprünglichen Problem ähnlich sind, löst die Unterprobleme rekursiv und kombiniert schließlich die Lösungen der Unterproblemen, um das ursprüngliche Problem zu lösen. Weil Teile-und-Herrsche Unterprobleme rekursiv löst, muss jedes Unterproblem kleiner sein als das ursprüngliche Problem, und es muss einen Basisfall für Subprobleme geben. Du kannst Dir einen Teile-und-Herrsche Algorithmus als aus drei Teilen bestehend vorstellen:
  1. Teile das Problem in eine Anzahl von Unterproblemen, die kleinere Instanzen des ursprünglichen Problems sind.
  2. Herrsche über die Unterprobleme, indem du sie rekursiv löst. Jedes Unterproblem wird auf den bis zum Basisfall zerlegt und gelöst.
  3. Kombiniere die Lösungen der Teilprobleme in die Lösung des ursprüngliche Problems.
Du kannst dir leicht die Schritte eines Teile-und-Herrsche Algorithmus merken als: teile, herrsche, kombiniere. Im folgenden zeigen wir einen Schritt, unter der Annahme, dass der Teile-Schritt zwei Subprobleme erzeugt. (Einige Teile-und-Herrsche Algorithmen produzieren mehr als zwei Subprobleme):
Wenn wir die Subprobleme wiederum in Subprobleme unterteilen, und diese wiederum in Subprobleme, erhalten wir:
Weil Teile-und-Herrsche mindestens zwei Subprobleme erzeugt, macht ein Teile-und-Herrsche Algorithmus mehrere rekursive Aufrufe.

Dieses Tutorial ist in Zusammenarbeit zwischen den Professoren Thomas Cormen und Devin Bock von Dartmouth Computer Sience und dem Khan Academy Computing Curiculum-Team entstanden und wurde von der KA Deutsch Community übersetzt. Das Tutorial ist unter der Lizenz CC-BY-NC-SA lizenziert.

Willst du an der Diskussion teilnehmen?

Noch keine Beiträge.
Verstehst du Englisch? Klick hier, um weitere Diskussionen auf der englischen Khan Academy Seite zu sehen.