Diskussion:Doppel-Hashing
Also irgendwie ist der Artikel nicht stimmig. Zum einen das Thema mit offenem Hashing vs. geschlossenem Hashing. Hier bin ich auch der Meinung, dass das offene Hashing das ist, welches keine externen Listen benutzt.
Des weiteren finde ich das Beispiel für eine H' Funktion unglücklich gewählt. Bei h'(k) = k mod (m - 2) kann es durchaus passieren, dass h'(k) = 0, dann würde aber auch j * h'(k) keine Veränderung an der Position bringen und es wird nie eine erfolgreiche neue Position gefunden.
Eine übliche und auch in den mir bekannten Lehrbüchern erwähnte h' Funktion ist h'(k) = q - (k mod q) für q < m (und m sollte Prim sein). Bei dieser Funktion ist es ausgeschlossen, dass h'(k)=0 wird
Außerdem ist auch die Verknüpfung in der eigentlichen Hash-Funktion meiner Meinung nach fehlerhaft, denn bei der Subtraktion können negative Werte entstehen, die dann aber keiner Zelle zugeordnet werden können. Hier wäre bspw. (h(k) + s(j,k)) mod m vorzuziehen, da diese immer im Bereich 0 - m-1 bleibt, was für eine Hash-Funktion im Allgemeinen gefordert wird.
Bemerkung von 80.141.121.138 vom 16.03.2007
BearbeitenUrsprünglich im Artikel selber, nun hierher verschoben (Emdee 18:59, 20. Jun. 2008 (CEST)):
„Bemerkung: Offene und geschlossene Hashverfahren sind hier falsch charakterisiert. Beim offenen Hashverfahren werden Überläufer, auch Kollisionen genannt, in der Hash-Tabelle untergebracht und nicht extern, z.B. in Listen, gespeichert. Beim offenen Hashverfahren sind also Sondierungsfunktionen notwendig.“
- Eventuell QS setzen. -- Emdee 19:03, 20. Jun. 2008 (CEST)