2.3 Untere Schranke Ω(n log n)
Bevor man nach schnelleren Algorithmen sucht, fragt man: Wie schnell kann es überhaupt gehen? Eine untere Schranke gilt für jeden denkbaren Algorithmus, nicht nur für einen bestimmten.
Das Sortierproblem lässt sich in linearer Zeit auf das Konvexe-Hülle-Problem transformieren.
Daher benötigt die Berechnung der konvexen Hülle von Punkten in der Ebene .
Der Beweis steht auf den Folien nur als „siehe Tafel“, deshalb hier ausführlich.
Beweisidee: Reduktion
Bekannt ist: Vergleichsbasiertes Sortieren von Zahlen braucht im Worst Case Vergleiche. (Ein Entscheidungsbaum muss Permutationen unterscheiden und hat deshalb Höhe .)
Strategie: Wir zeigen, dass man mit einem Hüllen-Algorithmus sortieren kann, wobei nur Zusatzaufwand anfällt. Wäre die Hülle schneller als berechenbar, dann auch das Sortieren. Das ist ein Widerspruch.
Beweis
Gegeben seien (verschiedene) reelle Zahlen , die sortiert werden sollen.
Schritt 1 – Transformation, : Bilde jede Zahl auf einen Punkt der Normalparabel ab:
Schritt 2 – Alle Punkte sind Ecken der Hülle: Die Parabel ist eine streng konvexe Funktion. Für drei Parabelpunkte mit liegt der mittlere echt unterhalb der Sehne zwischen den äußeren. Kein Punkt liegt also auf oder in der Hülle der anderen, und jeder Punkt ist eine Ecke von .
Gib eigene Zahlen ein: Sie landen auf der Parabel, die Hülle läuft sie von links nach rechts ab, und heraus kommt die sortierte Folge.
Hülle gegen den Uhrzeigersinn ab dem linkesten Punkt (Nummern im Bild) ⇒ sortiert: -3 < -1.5 < -0.5 < 0.5 < 2 < 3 < 4 · Alle Punkte liegen auf der Parabel, also sind alle Ecken der Hülle.
Schritt 3 – Hülle berechnen: mit dem (hypothetischen) Hüllen-Algorithmus, Laufzeit . Er liefert alle Punkte in Randreihenfolge.
Schritt 4 – Sortierte Folge ablesen, : Suche in der Ausgabe den Punkt mit dem kleinsten (lineare Suche). Von dort aus gegen den Uhrzeigersinn ablesen: Die Punkte kommen in aufsteigender -Reihenfolge, denn die Hülle ist hier genau die Parabelkurve von links nach rechts (unten), geschlossen durch die Kante von ganz rechts zurück nach ganz links (oben). Die -Koordinaten in dieser Reihenfolge sind die sortierte Folge.
Gesamt: Sortieren in .
Schluss: Wegen der Sortierschranke gilt , also .
- Die Schranke gilt im passenden Rechenmodell (algebraische Entscheidungsbäume). Dort ist auch das Quadrieren erlaubt. Im reinen Vergleichsmodell könnte man die Parabelpunkte gar nicht erzeugen.
- Entscheidend ist, dass die Ausgabe geordnet sein muss. Nur die Menge der Ecken zu bestimmen, ist ein anderes Problem (auch dafür gilt , aber mit aufwendigerem Beweis).
Folgerungen (Folie 12)
Die Komplexität des 2D-Hüllenproblems ist . Es gibt Algorithmen mit , und schneller geht es nicht.
| Ansatz | Laufzeit | optimal? |
|---|---|---|
| Naiv (2.2) | nein | |
| Divide-and-Conquer | ja | |
| Scan-Line: Graham's Scan (2.4) | ja | |
| Output-sensitiv: Jarvis' March (2.5), Hülle ist -Eck | nein (Worst Case ) | |
| Output-sensitiv: Chan (2.6) | ja, im output-sensitiven Sinne |
Und output-sensitiv? Im Beweis oben ist . Für output-sensitive Algorithmen gilt die feinere Schranke [Kirkpatrick & Seidel 1986]. Für ist das wieder , für kleines ist es weniger.