Nyílt címzéses Hashelés Nyílt címzéssel, h(k)=k mod(11) hash-függvénnyel hash-eljük a következő sorozatot: 18,28,36,17,62,48,50 Rajzoljuk le a keletkezett táblát (kezdetben üres volt).
Lineáris próbálás: h(k) = k mod k = 18, 28, 36 k = 17 6-os foglalt Lényege: ha egy tömbindex foglalt, visszalépünk az első üres tömbindexig és ott helyezzük el az elemet. k = 62 7-es foglalt
Lineáris próbálás: h(k) = k mod Lényege: ha egy tömbindex foglalt, visszalépünk az első üres tömbindexig, és ott helyezzük el az elemet. k = 48 4-es foglalt k = 50 6-os foglalt
Négyzetes próbálás: h(k) = k mod k = 18, 28, 36 k = 17 6-os foglalt Lényege: ha egy tömbindex foglalt, a tőle jobbra, majd balra lévő távolság négyzetére rakjuk az elemet …stb. k = 62 7-es foglalt
Négyzetes próbálás: h(k) = k mod k = 48 4-es szabad! k = 50 6-os foglalt Lényege: ha egy tömbindex foglalt, a tőle jobbra, majd balra lévő távolság négyzetére rakjuk az elemet …stb.
Kettős hash-elés k = (4+1)= 2 k = (0+1)= Elsődleges hash függvény: k mod 11 Másodlagos hash függvény: (k mod 7) + 1 Ez alapján a képlet amivel az indexszámot kapjuk: k mod 11 – ( i ( (k mod 7) + 1 )) ahol i az ütközések száma k = (1+1)=1
Kettős hash-elés Elsődleges hash függvény: k mod 11 Másodlagos hash függvény: (k mod 7) + 1 Ez alapján a képlet amivel az indexszámot kapjuk: k mod 11 – ( i ( (k mod 7) + 1 )) ahol i az ütközések száma k = (3+1)=2 6-2(3+1)=-2 k = (6+1)=0
Kettős hash-elés Elsődleges hash függvény: k mod 11 Másodlagos hash függvény: (k mod 7) + 1 Ez alapján a képlet amivel az indexszámot kapjuk: k mod 11 – ( i ( (k mod 7) + 1 )) ahol i az ütközések száma k = (6+1)=-3 k = (1+1)=4