Escolar Documentos
Profissional Documentos
Cultura Documentos
Tablas de Hash
Tablas de Hash
• Muchas aplicaciones requieren un conjunto dinámico que soporte
las operaciones de un diccionario: Inserción, Búsqueda,
Eliminación.
1 1
Universo de Claves
U 2
3 3
5 8 0 2
4 5
6
5
1
6
Claves 3
Almacenadas
7 7
(K) 4
7
8
9 9 9
Tablas de Hash
Tablas de Direccionamiento Directo
Estructura de Datos y Operaciones:
onstante
MAXCLAVES = |U|;
tipo
RangoClaves = 0..MAXCLAVES-1;
TipoClave = Entero;
TipoInfo = ?;
TipoElem = registro
clave: TipoClave;
info: TipoInfo;
fregistro;
h(k) = i
h: Función de hash
k: Clave
i: Dirección o índice en la tabla
Tablas de Hash
Tablas de Hash
Tabla de Hash
Universo de Claves 1
U
2
5 8 0 2
3
Función de
6 hash o 4
1 función de
mapeo 5
Claves 3
Almacenadas 6
(K) 4
7
7
8
9
9
Tablas de Hash
Tablas de Hash
Como es posible que dos claves conduzcan al mismo mapeo, es
decir, que la función de hash produzca el mismo resultado para dos
claves diferentes (colisión).
Una función hash (h) convierte una clave en una dirección (índice)
dentro del arreglo:
Método de la división:
Método de la multiplicación:
Este método opera en dos pasos:
Tabla de
Hash
0
Universo de 1
Claves
U 2
5 8 0 2
3
Función
6 de hash 4
1 o
función 5
Claves 3
Almacenad
de
6
as (K) 4 mapeo
7
7
8
9
9
Tablas de Hash
Hash Abierto
onstante
MAX_TABLA = ?;
tipo
RangoClaves = 0.. MAX_TABLA - 1;
TipoClave = Entero;
TipoInfo = ?;
TipoElem = registro
clave: TipoClave;
info: TipoInfo;
fregistro;
0
Universo de
Claves 1
U K0
K5 2
K4
K8 K2
K7 3
Función
K6 de hash 4
K1 o
función 5
Claves
Almacenad
de
6
as (K) mapeo
K3 7
8
K9
9
Tablas de Hash
Hash Cerrado
Prueba lineal
En este tipo de estrategia se utiliza la función f(i), la cual es una función lineal
de i, por ejemplo: f(i) = i. La función de hash quedaría de la siguiente manera:
Exploración cuadrática
Dispersión Doble
h2(k) = R - (k MOD R)