HomeWissen Stichwortverzeichnis Tags

Bucketsort

Einfache Sprache

Bucketsort ist ein Sortierverfahren, dass ohne Elementvergleiche auskommt. Elemente werden in “Buckets” platziert und dann die Buckets nacheinander aufgereiht.

Idee Bucketsort

Gegeben ist ein Feld $A$ mit $n$ Zahlen aus $\{0,\ldots,m-1\}$. Bucketsort verwendet ein Feld von $m$ Buckets $B[0],\ldots,B[m-1]$. Jeder Bucket ist eine einfach verkettete Liste von Elementen. Zu beginn sind diese noch leer. Füge jedes Element $x$ aus $A$ in die Liste in Bucket $B[x]$ ein. Am Ende hänge alle Listen der Reihe nach aneinander. Er arbeitet out-of-place. D.h. er benötigt mehr zusätzlichen Speicherplatz.

Algorithmus

1def bucketsort(A, m):
2    n = len(A)
3    B = [[] for _ in range(m)]
4    for i in range(n):
5        B[A[i]].append(A[i])
6    for j in range(1, m):
7        B[0].extend(B[j])
8    A[:] = B[0]

Laufzeit

Bucketsort hat eine Laufzeit von $\mathcal O(m+n)$. Ist $m=\mathcal O(n)$, so ist die Laufzeit $\mathcal O(n)$.

Home: