Вы находитесь на странице: 1из 24

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

DEPARTAMENTO ACADEMICO DE INFORMATICA

ALGORITMICA III

HASHING
(TABLAS DE DISPERSION)

IVAN MEDRANO VALENCIA


TABLAS DE DISPERSION
• Estructura de datos para gestionar colecciones de
elementos donde la búsqueda de un elemento puede
hacerse en O(1) en un alto porcentaje de casos
• La estructura de datos ideal para la tabla de
dispersión es simplemente un vector de tamaño fijo N
que contiene las claves.
• Mejora el tiempo de búsqueda en listas:
O(n) ó O(log n) si la lista está ordenada
• Asocian cada llave con su valor correspondiente en el
elemento que ocupa la posición indicada por el índice
del vector
• También llamadas tablas hash
TABLAS DE DISPERSION
TABLAS DE DISPERSION
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
Dispersión 5
Claves 3
Almacenadas (K) 6
4
7
7

8
9
9
TABLAS DE DISPERSION
• FUNCION DE DISPERSION
Función que hace corresponder cada llave con un
número entero que es el código de dispersión
(hashcode) de esa llave
Características de una buena función de dispersión:
• El código de dispersión debe ser un número dentro
del rango de índices del vector (N-1)
• Suele utilizarse el operador módulo (%) para lograrlo
• Debe generar una dispersión uniforme de las llaves en
el vector
• Debe poder computarse de manera muy eficiente
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UN NUMERO ENTERO
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UN NUMERO ENTERO
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UNA CADENA DE
CARACTERES
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UNA CADENA DE
CARACTERES
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UNA CADENA DE
CARACTERES
FUNCIONES DE DISPERSION CUANDO
LA CLAVE ES UNA CADENA DE
CARACTERES
hashCode() java
Todos los objetos String tienen el método hashCode() que se calcula
mediante la siguiente fórmula

𝑛−1

ℎ 𝑠 = ෍ 𝑠 𝑖 ∗ 31𝑛−1−𝑖
𝑖=0
PROBLEMA DE LAS COLISIONES
METODOS PARA LA RESOLUCION DE
COLISIONES
DISPERSION ABIERTA
Tablas de Direccionamiento Directo

1 1
Universo de Claves
U 2

3 3
5 8 0 2
4 5
6
5
1
Claves 3 6

Almacenadas
(K) 4
7 7
7
8

9 9 9
DISPERSION ABIERTA
DISPERSION ABIERTA
IMPLEMENTACION DE OPERACIONES
DISPERSION ABIERTA
IMPLEMENTACION DE OPERACIONES
DISPERSION CERRADA
DISPERSION CERRADA

Tabla de Hash Cerrado

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) dispersi
K3 ón 7

8
K9
9
DISPERSION CERRADA
DISPERSION CERRADA
DISPERSION CERRADA
DISPERSION CERRADA

Вам также может понравиться