Hash table: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Funzionamento e implementazione: Aggiunto la funzione parser "Formatnum" e sostituito un punto con una virgola |
|||
(4 versioni intermedie di 2 utenti non mostrate) | |||
Riga 29:
Di seguito vengono riportati i metodi più diffusi per la gestione delle collisioni.
* '''Open Hash''' (o indirizzamento aperto)
* '''Hash con concatenazione''' (o con lista di trabocco): per ogni cella della tabella di hash si fa corrispondere invece di un elemento, una [[Lista (informatica)|lista]] (solitamente una [[lista concatenata]]). In questo modo un elemento che collide viene aggiunto alla lista corrispondente all'indice ottenuto.
== Open Hash ==
Riga 50:
Quando si incontra una collisione non si fa altro che utilizzare l'indice successivo a quello che collide, sino a che non si trovi una casella libera.
<math>h(k,i) = (h^1 (k) + c_1 i + c_2 i^2)\pmod{m}</math>
Quando si incontra una collisione non si fa altro che utilizzare l'indice che collide elevato al quadrato con normalizzazione rispetto alla grandezza della tabella dell'indice ottenuto, sino a che non si trovi una casella libera.
<math>h(k,i) = (h_1 (k) + i h_2 (k))\pmod{m}</math> dove, per esempio possiamo porre <math>h_1 (k) = k \pmod{m}</math> e <math>h_2 (k) = 1 + (k \pmod{m^1})</math>.
Riga 109:
|}
dove
==Bibliografia==
|