Zur Berechnung des Hash-Index reicht es nicht, nur f(x) zu betrachten. Die gesamte Funktion h(x,i) ist auszuwerten.
h(x,i) = [ 2*x mod 8 + i * (2 -(x mod 8)] mod 8
Beim doppelten Hashing beginnt der Algorithmus mit jedem neuen Eingangswert x mit dem Index i=0. Dieser Index wird nur dann um 1 erhöht, sobald eine Kollision auftritt.
Betrachtet man die Zahlenfolge x=1,2,3,4,5 :
h(x=1,i=0) = 2
h(x=2,i=0) = 4
h(x=3,i=0) = 6
h(x=4,i=0) = 0
h(x=5,i=0) = 2
Mit x=5 wäre der Hash-Index 2 bereits belegt. Nun wird i ums eins erhöht
h(x=5,i=1) = 3 (frei)
Die Zahlenfolge 1,2,3,4,5, führt also nicht zu einer Reorganisation der Tabelle. Dazu wählt man anstatt x=5 den Wert x=6. Wegen
h(x=6,i=0) = 4
h(x=6,i=1) = 2
h(x=6,i=2) = 0
h(x=6,i=3) = 6
h(x=6,i=4) = 4
h(x=6,i=5) = 2
h(x=6,i=6) = 0
h(x=6,i=7) = 6
wären alle Tabellenplätze bereits belegt. Die erste gesuchte Zahlenfolge lautet also 1,2,3,4,6.
Eine mögliche Zahlenfolge für die zweite Aufgabe wäre
h(x=1,i=0) = 2
h(x=2,i=0) = 4
h(x=3,i=0) = 6
h(x=4,i=0) = 0
h(x=7,i=1) = 7
h(x=9,i=1) = 3
h(x=11,i=7) = 5
h(x=13,i=7) = 1