next up previous contents
Next: Quicksort Up: Selektieren und Sortieren Previous: Untere Schranke für (vergleichbasiertes)

Bucketsort im Schnitt

Gegeben n-Schlüsseln $\in[0,1]$. Schlüsseln gleichverteilt. Um diese zu sortieren:
1.
Initialisiere Buckets $b_0,b_1,\cdots,b_n$
2.
Lege ai in Bucket $\lceil n\cdot a_i \rceil$
3.
Sortiere Schlüssel innerhalb jedes Buckets
4.
Kankataniere Buckets

\fbox {\parbox[c]{12.45cm}{\textbf{Satz:}
Wird zum Sortieren Sortieralgorithmus ...
 ...ann hat obiger Bucketsort-Algorithmus im Durchschnitt eine lineare Laufzeit.
}}

Beweis: Sei ni die Anzahl der Elemente im Bucket bi (nach Schritt 2). Die Schritte 1,2 und 4 benötigen zusammen die Zeit $\mathcal{O}(n)$. Die Zeit für Schritt 3 beträgt:

\begin{displaymath}
\mathcal{O}(\sum^{n}_{i=0}n^2_i)\end{displaymath}

Die Erwartungswert für $\sum n_i^2$ läßt sich folgendermaßen abschätzen:

\begin{displaymath}
\begin{split}
 \text{E}\left(\sum^{n}_{i=0} n^2_i\right) &\l...
 ... i < j \leq n}\frac{1}{n+1} \right)= \mathcal{O}(n).\end{split}\end{displaymath}

$\Diamond$

Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999