8 Untere Schranke für vergleichende Sortierver

Werbung
8
Untere Schranke für vergleichende Sortierverfahren
Viele verwendete schnelle Sortierverfahren (z.B.: MERGESORT, HEAPSORT )
besitzen eine Laufzeit von O(n log n). Die Frage, die sich dabei stellt lautet:
Geht es besser?
Man kann beweisen, das jedes Sortierverfahren, das mittels Vergleichen arbeitet1 , braucht mindestens c · n log n Vergleiche im worst case (wobei c > 0
und konstant ist).
8.1
Herleiten der unteren Schranke
Ω (n log n)
Der Kontrolluss eines vergleichenden Sortierverfahrens kann mittels eines sogenannten Entscheidungsbaummodells dargestellt werden. Darin scheinen alle
möglichen und nötigen Entscheidungen auf, um ein sortiertes lineares Feld zu
erhalten. Beispiel: Es liegt eine Sequenz von 3 Zahlen vor < a1 , a2 , a3 >(z.B.
< 5, 8, 2 >). Dann schaut der zugehörige Entscheidungsbaum folgendermaÿen
aus:
Die Blätter stellen alle möglichen Permutationen dar2 . Im allgemeinen Fall ist
die Anzahl der Blätter gleich n!.
Das worst-case Verhalten entspricht dem längsten Ast im Entscheidungsbaum
(Anzahl der inneren Knoten = Anzahl der Vergleiche). Der ideale Sortieralgorithmus enspricht einem vollständigen, da ausgeglichen, Baum. Dadurch wird
der längste Ast ( = worst case) minimiert. Die Höhe beträgt h ≥ log(n!). Mit
Hilfe der Stirling-Approximation n! > ( ne )n erhält man:
h ≥ log
n n
e
= n · log n − n · log e = Ω(n · log n)
1 D.h. bei dem jeweils einzelne Elemente direkt
2 Die Permutation über alle möglichen Inputs.
z.B.:<
a1 , a 2 , a 3 >
,<
a1 , a3 , a2 >,<a2 , a1 , a3 >
1
miteinander verglichen werden.
, usw.
Ω(n · log n) ist die untere Schranke für die Anzahl der zum Sortieren notwendi-
gen Vergleiche (und somit für die Laufzeit vergleichender Sortierverfahren).
8.2
worst-case optimal
Im Zusammenhang der unteren Schranke kann einen Sortieralgorithmus als
worst-case optimal bezeichnen, wenn er für jede Eingabefolge in O(n · log n)
sortiert. Zum Beispiel MERGESORT und HEAPSORT sind worst-case optimal.
2
Herunterladen