9. Untere Schranken für Sortieren

Werbung
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
Herunterladen