next up previous contents
Next: Chainingverfahren Up: Hashing Previous: Hashing

Grundlagen

$\textstyle\parbox{70mm}{
 Zutaten:
 \begin{itemize}
 \item Universum $U$\space ...
 ...e Hashtabelle
 \item Hashfunktion $h:U \rightarrow [0..m-1]$\\  \end{itemize} }$
\begin{picture}
(117,88)
\put(25,0){
\framebox 
(15,10){}}
\put(25,25){
\framebo...
 ...)(0,1){14}{\circle*{0.1}} 
\multiput(40,11)(0,1){14}{\circle*{0.1}}\end{picture}

Problemstellung: Gegeben sei eine Menge M von Elementen, von denen jedes durch einen Schlüssel k aus der Menge K bezeichnet sei. Die Problemstellung ist nicht neu: Wie muß die Speicherung der Elemente aus M organisiert werden, damit jedes anhand eines Schlüssels möglich schnell lokalisiert werden kann? Gesucht ist also eine Abbildung $ h : K
\rightarrow T $ von der Menge aller Schlüssel in Adressraum T der Maschine. Hierbei soll jedoch eine bisher nicht beachtete Schwierigkeit berücksichtigt werden: Die Menge K der möglischen Schlüsselwerte ist wesentlisch größer als der Adreßraum. Folglich kann die Abbildung h nicht injektiv sein, es gibt Schlüssel k1, k2, .. mit $h(k_1) = h(k_2) =
\dots$. Wir werden sehen, daß aufgrund dieses Umstandes die Speicherstelle eines Elements mit Schlüssel k von einem anderen Element mit einem anderen Schlüssel l besetzt sein kann (Kollision).

Zwei Methoden zur Kollisionsauflösung:



Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999