Algorithmus:
Der BFPRT-Algorithmus [Blum, Floyd, Pratt, Rivest, Tarjan]:
1. Teilen der Eingabe in
Partitionen der Länge (z.B. , immer ungerade) sowie die restlichen
Elemente in eine weitere Partition
2. Sortieren der Partitionen mit Kosten je zur Bestimmung der Mediane, ges.
3. Median aller Mediane bestimmen: rekursiver Aufruf des BFPRT,
4. Partitionieren aller Elemente in
und
,
5. Rekursiver Aufruf des BFPRT-Algorithmus entweder für oder , ges.
Bemerkung:
Nach Bestimmung von gibt es je
Partitionen mit kleinerem und größerem Median als .
Partitionen mit kleinerem Median enthalten Elemente , Analoges gilt für größere Elemente.
Komplexität:
Der BFPRT-Algortimus selektiert das -kleinste Element aus Elementen in .
Bemerkung:
Aufwand für BFPRT bei ist etwa , daher erst für große geeignet. Weitere
Verbesserungen auf bis zu
für die Praxis (noch) irrelevant.