Mathematische Grundlagen der Sortierung: Ableitung erwarteter Vergleiche und Swaps in Quicksort
Quicksort ist ein weit verbreiteter Sortieralgorithmus, der für seine Effizienz bekannt ist. Das Verständnis seiner Leistung beinhaltet die Analyse der erwarteten Anzahl von Vergleichen und Swaps während der Ausführung. Dieser Artikel untersucht die mathematischen Prinzipien hinter diesen Erwartungen und konzentriert sich auf die probabilistische Analyse von Quicksort.
Erwartete Anzahl von Vergleichen
Die erwartete Anzahl von Vergleichen in Quicksort hängt von der Wahl des Pivots und des Partitionierungsprozesses ab. Unter der Annahme, dass alle Permutationen gleich wahrscheinlich sind, kann der Durchschnittsfall mit rekursiven Gleichungen analysiert werden. Für ein Array der Größe n erfüllen die erwarteten Vergleiche, die als C(n) bezeichnet werden, die Wiederholung:
C(n) = n - 1 + frac{1}{n} sum {k=0}^{n-1} [C(k) + C(n - 1 - k)]
Diese Wiederholung vereinfacht sich zu einem bekannten Ergebnis: C(n) ≈ 2n ln n für große n Die Ableitung beinhaltet die Summierung aller möglichen Pivot-Positionen und die Anwendung von Eigenschaften von harmonischen Zahlen.
Erwartete Anzahl Swaps
Swaps in Quicksort treten während des Partitionierungsprozesses auf. Die erwartete Anzahl von Swaps hängt mit der Anzahl der Vergleiche und der Verteilung der Pivot-Optionen zusammen. Unter einheitlicher Zufälligkeit können die erwarteten Swaps, die als S(n) bezeichnet werden, durch Analyse der Partitionierungsschritte angenähert werden.
Die erwarteten Swaps pro Partition sind proportional zur Größe der Subarrays. Die Summe aller rekursiven Aufrufe ergibt eine Näherung: S(n) ≈ n ln n.
Zusammenfassung der Erwartungen
- Vergleiche: Ca. 2n ln n für große n.
- Swaps: Ca. n ln n für große n.
- Beide Metriken wachsen logarithmisch mit der Arraygröße und spiegeln die Effizienz von Quicksort wider.