Next: Der Schönhage-Paterson-Pippenger-Median-Algorithmus
Up: Selektieren und Sortieren
Previous: Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus
Problem: Bestimme den Median von n Elementen:
- 1.
- Wähle Elemente zufällig aus dem n Elementen aus.
- 2.
- Sortiere diese Elemente mit einem -Algorithmus.
- 3.
- Setze
- p1
- -kleinsten Element der Elemente.
- p2
- -kleinsten Element der Elemente.
- 4.
- Partitioniere n Elemente in
- S0
- S1
- S2
- 5.
- Falls oder oder dann wiederhole den
Algorithmus
ansonsten sortiere S1 und liefer das -kleinste
Element davon ab.
Beweis:
- i)
- Korrektheit: klar.
- ii)
- Anzahl der Vergleichen einer Iteration:
+ Kosten der Partitionierung
Kosten der Partitionierung: zu naiv, bessere Ansatz:
Wähle zuerst mit der Wahrscheinlichkeit je aus, ob Element x mit p1 oder p2
verglichen wird, mache zwei Vergleiche nur, falls nötig. Erwartete Anzahl Vergleiche dafür ist
gleich:
Wir zeigen, daß der Algorithmus mit der Wahrscheinlichkeit nur
eine Iteration benötigt (daraus folgt, daß insgesamt Anzahl der Vergleiche ist). Dafür verwenden wir Hilfsmittel aus der Stochastik:
Auswahl der Elemente wird wiederholt, falls .
Dies passiert gdw. wir höchstens Elemente aus der Hälfte der aller Elemente Median auswählen.
Was ist also die Wahrscheinlichkeit dafür, daß keine neue Auswahl der Elemente
stattfinden muß?
Setze Binäre Zufallsvariable für jedes mit:
binomialverteilt mit Parametern n und
E(, Var(
Die Wahrscheinlichkeit hierbei ist:
Die Wahrscheinlichkeit für den Fall, daß man von vorne anfangen muß:
Die anderen beiden Wahrscheinlichkeitsbedingungen (WS() und WS())
ergeben analoge Abschätzungen Widerholung mit
WS
Next: Der Schönhage-Paterson-Pippenger-Median-Algorithmus
Up: Selektieren und Sortieren
Previous: Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus
Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999