Hashing

Mariexshhx

Bekanntes Mitglied
Hashfunktion h(x,y) = h(x) +j^2 und h(x) =x mod 5
Ich soll jetzt 0,2,5,10 einfügen. Bei der 10 habe ich dann meine probleme, weil diese ja dann an index 2 stehen oder verstehe ich da was falsch ? ich soll die anzahl der kollisionen für jeden Schlüssel angeben
 

Anhänge

  • IMG_1754.jpg
    IMG_1754.jpg
    203,8 KB · Aufrufe: 4

mihe7

Top Contributor
Naja, ausgehend von einer Hashfunktion h(x) definiert man eine Folge von Hashfunktionen für den Schlüssel x, z. B. h(x, j) := (h(x) + j²) mod m, wobei m die Anzahl der zur Verfügung stehenden Buckets ist, bei Dir also m=5. Für jeden einzutragenden Schlüssel geht man nun die Folge durch (j = 0, ...), bis man auf einen leeren Bucket stößt.

Warum bei Dir die 2 an Bucket 1 steht, ist mir allerdings nicht klar. Ebenso wenig woher Schlüssel 8 kommt, wenn Du 0, 2, 5 und 10 einfügen sollst...
 

Ähnliche Java Themen

Neue Themen


Oben