31.10.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!