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