PDA

View Full Version : hash doppio - delucidazioni.....


thefrog
05-06-2004, 09:01
mettiamo che ho due funzioni per l'hash:

h'(k)= k mod 17
h''(k)= kmod 11


ho ovviamente una lista di chiavi da sistemare in una tabella, e uso h'(k) mi spiegate cosa devo fare quando si verifica una collisione?propriono mi ricordo come funziona........devo usare la seconda?devo usare qualche formula particolare?

grazie

motogpdesmo16
05-06-2004, 09:42
dipende da come è strutturata la traccia del problema.

Se trovi una collisione potresti applicare il metodo della scansione lineare oppure della scansione non lineare (uso delle cosiddette funzioni di randomizzazione allo scopo di trovare un posto libero nello spazio di memoria).
Però dal fatto che hai due funzioni hash (h' e h''), penso che dovresti usare appunto h' per generare le allocazioni e h'' nel caso si verificassero delle collisioni.

spero di essere stato d'aiuto.ciao

thefrog
05-06-2004, 13:44
stamani con un amico siamo riusciti a venire a capo del problema.

ormai lo dico perchè può essere utile a qualcuno, praticamente si inseriscono le chiavi k in base a h', quando si verifica una collisione applichiamo la formula h'(k) + i*(h''(k))
se anche così la posizione indicata è occupata si ripete incrementando di volta in volta i di 1.

grazie lo stesso motogp