9. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten Laufzeit Ω(nlog(n)). Werden nun geimeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame Eigenschaften in Modell des Vergleichssortierers zusammen. Zeigen dann, dass jeder Vergleichssortierer Laufzeit Ω(nlog(n)) besitzt. SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 1 Laufzeit von Sortieralgorithmen Algorithmus Laufzeit SS 2006 InsertionSort MergeSort Quicksort Heapsort worst-case average-case Θ(n 2 ) - Θ(n log (n )) Θ(n log (n )) Θ(n 2 ) Θ(n log (n )) Θ(n log (n )) - Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 2 Vergleichssortierer Definition 9.1: Ein Vergleichsortierer ist ein Algorithmen, der zu jeder beliebigen Eingabefolge (a1 ,a2 ,K ,an ) von Zahlen eine Permutation π berechnet, so dass aπ (1) ≤ aπ (2 ) ≤ L ≤ aπ (n ). Dabei benutzt ein Vergleichssortierer außer den durch den Pseudocode definierten Kontroll- und Speicheroperationen nur die Vergleichsoperationen =, ≠, ≤, ≥, <, > . Bemerkungen: 1. Nehmen an, dass Eingabezahlen immer paarweise verschieden sind. Benötigen daher = nicht. 2. Können uns auf den Vergleich ≤ einschränken. Andere Vergleichen sind hierzu äquivalent. SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 3 Entscheidungsbäume Definition 9.2: Ein Entscheidungsbaum über n Zahlen ist ein binärer Baum bei dem 1. Jeder innere Knoten mit i : j , 1 ≤ i , j ≤ n markiert ist. 2. Jedes Blatt mit einer Permutation π auf {1,K, n} markiert ist. SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 4 Entscheidungsbäume und Sortieren Mit Entscheidungsbäumen können Vergleichssortierer modelliert werden. Hierzu 1. 2. 3. Wird bei Eingabe (a1 ,K ,an ) ein Pfad von der Wurzel des Baums zu einem Blatt des Baums durchlaufen. Wird an einem inneren Knoten markiert mit i : j die Kante zum linken Kind genommen, falls ai ≤ a j , sonst wird die Kante zum rechten Kind genommen. Wird die Permutation π des Blatts am Ende des Pfades ausgegeben. Zu einem Vergleichssortierer gibt für jede Eingabegröße n einen Entscheidungsbaum. SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 5 Entscheidungsbaum für Insertion-Sort 1:2 > ≤ 2:3 ≤ 1:3 ≤ > (1,2,3) (2,1,3) 1:3 ≤ (1,3,2) > 2:3 ≤ > (3,1,2) (2,3,1) > (3,2,1) Eingabe : a1 = 6, a2 = 8,a 3 = 5 SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 6 Untere Schranke für Vergleichssortierer Lemma 9.3: Für Eingaben der Größe n hat ein Entscheidungsbaum für einen Vergleichssortierer mindestens n! Blätter. Lemma 9.4: log(n! ) = Θ(nlog(n )). Satz 9.5: Die von einem Vergleichssortierer bei Eingabegröße n benötigte Anzahl von Vergleichen ist Ω(nlog(n )). Korollar 9.6: Die von Merge-Sort und Heapsort benötigte Laufzeit von Θ(nlog(n )) ist asymptotisch optimal. SS 2006 Datenstrukturen und Algorithmen 9. Sortieren - Untere Schranke 7