tablas hash

4
 Carlos Fabián León Rojas  Jonathan T orres Díaz Cesar Guzmán Segura Colisiones Tablas Hash Si dos llaves generan un hash apuntando al mismo índice, los registros correspondientes no pueden ser almacenados en la misma posición. En un millón de entradas, hay un 95% de posibilidades que al menos una colision ocurra antes de alcanzar los 5!! registros. Si traba"amos con #ash$ ables es normal que se produzcan colisiones. Estas se producen cuando al haber elementos que contienen inormació n distinta, se les asigna la misma clave por medio de la unción de dispersión. &ebido a estos errores recuentes las #ash $ ables tien en una unción que nos permite solucionar todos estos errores. 'l e(istir tipos de #ash$ables se utiliza un m)todo para cada una. nias resoluión !e olisiones" #$ %na! enami ento &or Se&ar a!o * tambi)n llamado hashing abierto cada casilla en el array reerencia una lista de los regis tr os insertados que colisionan en la misma casilla. +a inserción consiste en encontrar la casilla correcta y agregar al nal de la lista correspondiente. El borrado consiste en buscar quitar de la lista.

Upload: felicia-abril

Post on 01-Nov-2015

8 views

Category:

Documents


0 download

DESCRIPTION

tablas hash que es

TRANSCRIPT

Carlos Fabin Len Rojas

Jonathan Torres Daz

Cesar Guzmn Segura

Colisiones Tablas Hash

Si dos llaves generan un hash apuntando al mismo ndice, los registros correspondientes no pueden ser almacenados en la misma posicin.

En un milln de entradas, hay un 95% de posibilidades que al menos una colision ocurra antes de alcanzar los 2500 registros.

Si trabajamos con HashTables es normal que se produzcan colisiones. Estas se producen cuando al haber elementos que contienen informacin distinta, se les asigna la misma clave por medio de la funcin de dispersin. Debido a estos errores frecuentes las HashTables tienen una funcin que nos permite solucionar todos estos errores. Al existir 2 tipos de HashTables se utiliza un mtodo para cada una.

Tcnicas resolucin de colisiones:

1- Encadenamiento por Separado

O tambin llamado hashing abierto cada casilla en el array referencia una lista de los registros insertados que colisionan en la misma casilla. La insercin consiste en encontrar la casilla correcta y agregar al final de la lista correspondiente. El borrado consiste en buscar quitar de la lista.

Ejemplo

El pseudocdigo que sigue es una implementacin de una tabla hash de direccionamiento abierto con sondeo lineal para resolucin de colisiones y progresin sencilla, una solucin comn que funciona correctamente si la funcin hash es apropiada.

2-Direccionamiento Abierto:

Al utilizar un vector como representacin y cuando se produzca una colisin la resolvemos reasignndole otro valor hash a la clave hasta que encontremos un hueco.

Ejemplo Cdigo

Bibliografa

http://moralesblog.net/hash-table-java/http://web.engr.illinois.edu/~jeffe/teaching/373/notes/06-hashing.pdf