Sei sulla pagina 1di 2

Administracin de Archivos

Ing. Bruno Lpez Takeyas

FUNCIONES HASH HASHING


El mtodo llamado por transformacin de claves (hash), permite aumentar la velocidad de bsqueda sin necesidad de tener los elementos ordenados. Cuenta tambin con la ventaja de que el tiempo de bsqueda es prcticamente independiente del nmero de componentes del arreglo. Trabaja basndose en una funcin de transformacin o funcin hash (H) que convierte una clave en una direccin (ndice) dentro del arreglo. direccin H(clave)

Cuando se tienen claves que no se corresponden con ndices (p. ejem. por ser alfanumricas), o bien cuando las claves son valores numricos muy grandes, debe utilizarse una funcin hash que permita transformar la clave para obtener una direccin apropiada. Esta funcin hash debe de ser simple de calcular y debe de asignar direcciones de la manera mas uniforme posible. Es decir, dadas dos claves diferentes debe generar posiciones diferentes. Si esto no ocurre (H(K1)=d,H(K2)=d y K1 K2), hay una colisin. Se define, entonces, una colisin como la asignacin de una misma direccin a dos o ms claves distintas. Por todo lo mencionado, para trabajar con este mtodo de bsqueda debe elegirse previamente: Una funcin hash que sea fcil de calcular y que distribuya uniformemente las claves. Un mtodo para resolver colisiones. Si estas se presentan se debe contar con algn mtodo que genere posiciones alternativas.

Funcin Mdulo (por divisin) Consiste en tomar el residuo de la divisin de la clave entre el numero de componentes del arreglo. La funcin hash queda definida por la siguiente formula: H(K) = (K mod N) + 1 Se recomienda que N sea el numero primo inmediato inferior al numero total de elementos.

Funcin Centro de Cuadrados Consiste en elevar al cuadrado la clave y tomar los dgitos centrales como direccin. El numero de dgitos a tomar queda determinado por el rango del ndice. La funcin hash que definida por la sig. formula:

Administracin de Archivos

Ing. Bruno Lpez Takeyas

H(K) = digitos_centrales (K) + 1

Funcin Plegamiento Consiste en dividir la clave en partes de igual numero de dgitos (la ultima puede tener menos dgitos) y operar con ellas, tomando como direccin los dgitos menos significativos. La operacin entre las partes puede hacerse por medio de sumas o multiplicaciones. La funcin hash queda definida por la sig. formula: H(K) = digmensig ((d1...di) + (di + 1...dj) + ... + (d1...dn)) + 1

Funcin Truncamiento Consiste en tomar algunos dgitos de la clave y formar con ellos una direccin. La funcin hash queda definida por la sig. frmula: H(K) = elegirdigitos (d1,d2...dn) + 1

Potrebbero piacerti anche