Tema 8: Tabla Hash Estructuras de datos Introducción Función ...
Tema 8: Tabla Hash Estructuras de datos Introducción Función ...
Tema 8: Tabla Hash Estructuras de datos Introducción Función ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7<br />
8<br />
<strong>Función</strong> HASH<br />
Solución 2<br />
<strong>Función</strong> polinómica utilizando el código<br />
numérico <strong>de</strong> cada letra (potencias <strong>de</strong> 27)<br />
Problema: La tabla seria excesivamente<br />
gran<strong>de</strong> y con muchos huecos que no se<br />
utilizarán nunca<br />
<strong>Función</strong> HASH<br />
Objetivo<br />
• Que la tabla sea <strong>de</strong>l tamaño necesario para<br />
almacenar justo el número <strong>de</strong> elementos que<br />
queremos guardar<br />
• En la práctica veremos que es mejor que la<br />
tabla tenga espacio para el doble <strong>de</strong><br />
elementos.<br />
18-feb-04<br />
(C) Javier Miranda<br />
18-feb-04<br />
(C) Javier Miranda<br />
9<br />
10<br />
<strong>Función</strong> HASH<br />
Solución 3<br />
<strong>Función</strong> polinómica utilizando el código<br />
numérico <strong>de</strong> cada letra (potencias <strong>de</strong> 27) +<br />
uso <strong>de</strong> la función mod para convertir el<br />
número al rango <strong>de</strong> la tabla.<br />
Problema: COLISIONES (la función pue<strong>de</strong><br />
asignar la misma posición a varias palabras)<br />
Colisiones<br />
Soluciones<br />
1. Buscar el hueco más cercano<br />
– Linear Probing (x+1, x+2, ..., x+n)<br />
– Quadratic Probing (x+1, x+2 2 , ..., x+n 2 )<br />
– Double <strong>Hash</strong>ing Salto = K – (Clave mod K)<br />
El Tamaño <strong>de</strong> la tabla <strong>de</strong>be<br />
ser un número primo<br />
2. Listas dinámicas<br />
18-feb-04<br />
(C) Javier Miranda<br />
18-feb-04<br />
(C) Javier Miranda<br />
11<br />
12<br />
<strong>Tabla</strong> <strong>Hash</strong><br />
Linear Probing<br />
<strong>Tabla</strong> <strong>Hash</strong><br />
Quadratic & Double <strong>Hash</strong>ing<br />
Run<br />
Run<br />
18-feb-04<br />
(C) Javier Miranda<br />
18-feb-04<br />
(C) Javier Miranda