You are on page 1of 21

METODO DE

BUSQUEDA
HASHING
Integrantes:

Jonathan Serrano 624540


Daniel escobar 624499
Javier Saldaña 624502
DEFINICION
 Hash: se refiere a una
función o método para
generar claves o llaves
que representen de
manera casi unívoca a un
documento, registro,
archivo, etc., resumir o
identificar un dato a
través de la probabilidad,
utilizando una función
hash o algoritmo hash.
Un hash es el resultado
de dicha función o
algoritmo.
FUNCION HASH
 Es una función para resumir
o identificar
probabilísticamente un gran
conjunto de información,
dando como resultado un
conjunto imagen finito
generalmente menor. Varían
en los conjuntos de partida
y de llegada y en cómo
afectan a la salida
similitudes o patrones de la
entrada
VENTAJAS: DESVENTAJAS:
 Se pueden usar los valores  El archivo no esta
naturales de la llave, puesto clasificado
que se traducen  No permite llaves repetidas
internamente a direcciones  Solo permite acceso por
fáciles de localizar una sola llave
 Se logra independencia  Costos
lógica y física, debido a que
los valores de las llaves son  Tiempo de procesamiento
independientes del espacio requerido para la aplicación
de direcciones de la función hash
 No se requiere
almacenamiento adicional
para los índices.
ALGORITMO HASHING
 Algoritmo que se utiliza
para generar un valor
de hash para algún
dato, como por ejemplo
claves. Un algoritmo de
hash hace que los
cambios que se
produzcan en los datos
de entrada provoquen
cambios en los bits del
hash. Gracias a esto,
los hash permiten
detectar si un dato ha
sido modificado.
ALGORITMOS DE HASH MAS
COMUNES
 SHA-1: algoritmo de hash seguro
Algoritmo de síntesis que genera un hash de 160 bits.
Se utiliza, por ejemplo, como algoritmo para la firma
digital.
 MD2 y MD4
Algoritmos de hash que generan un valor de 128 bits.
 MD5
Esquema de hash de hash de 128 bits muy utilizado
para autenticación cifrada. Gracias al MD5 se
consigue, por ejemplo, que un usuario demuestre que
conoce una contraseña sin necesidad de enviar la
contraseña a través de la red.
FUNCIONES DE HASH
 Residuo de la división
 Medio del cuadrado
 Pliegue
RESIDUO DE LA
DIVISIÓN
 La idea de este método es la de dividir el
valor de la llave entre un numero apropiado,
y después utilizar el residuo de la división
como dirección relativa para el registro
(dirección = llave módulo divisor).
Mientras que el valor calculado real de una
dirección relativa, dados tanto un valor de
llave como el divisor, es directo; la elección
del divisor apropiado puede no ser tan
simple. Existen varios factores que deben
considerarse para seleccionar el divisor:
RESIDUO DE LA
DIVISIÓN
 El rango de valores que resultan de la operación "llave % divisor",
va desde cero hasta el divisor 1. Luego, el divisor determina el
tamaño del espacio de direcciones relativas. Si se sabe que el
archivo va a contener por lo menos n registros, entonces
tendremos que hacer que divisor > n, suponiendo que solamente
un registro puede ser almacenado en una dirección relativa dada.
 El divisor deberá seleccionarse de tal forma que la probabilidad
de colisión sea minimizada. ¿Como escoger este numero?
Mediante investigaciones se ha demostrado que los divisores que
son números pares tienden a comportase pobremente,
especialmente con los conjuntos de valores de llave que son
predominantemente impares. Algunas investigaciones sugieren
que el divisor deberá ser un numero primo. Sin embargo, otras
sugieren que los divisores no primos trabajan también como los
divisores primos, siempre y cuando los divisores no primos no
contengan ningún factor primo menor de 20. Lo mas común es
elegir el número primo mas próximo al total de direcciones.
RESIDUO DE LA
DIVISIÓN
 Ejemplo:
Numero de direcciones 996. La eleccion
de m sera 997, que es el primo mas
cercano. Se aplica esta función hash
cuyo número es:
245643
h(245643) = 245643 mod 997 = 381
MEDIO DEL
CUADRADO
 En esta técnica, la llave es elevada al
cuadrado, después algunos dígitos
específicos se extraen de la mitad del
resultado para constituir la dirección
relativa. Si se desea una dirección de n
dígitos, entonces los dígitos se truncan en
ambos extremos de la llave elevada al
cuadrado, tomando n dígitos intermedios.
Las mismas posiciones de n dígitos deben
extraerse para cada llave.
MEDIO DEL
CUADRADO
 Ejemplo:

Utilizando esta función hashing el tamaño


del archivo resultante es de 10n donde n
es el numero de dígitos extraídos de los
valores de la llave elevada al cuadrado.
POR PLIEGUE
 En esta técnica el valor de la llave es
particionada en varias partes, cada una de
las cuales (excepto la ultima) tiene el mismo
numero de dígitos que tiene la dirección
relativa objetivo. Estas particiones son
después plegadas una sobre otra y
sumadas. El resultado, es la dirección
relativa. Igual que para el método del medio
del cuadrado, el tamaño del espacio de
direcciones relativas es una potencia de 10.
COMPARACIÓN ENTRE LAS
FUNCIONES HASH
 Aunque alguna otra técnica pueda desempeñarse
mejor en situaciones particulares, la técnica del
residuo de la división proporciona el mejor
desempeño. Ninguna función hash se desempeña
siempre mejor que las otras. El método del medio del
cuadrado puede aplicarse en archivos con factores de
cargas bastantes bajas para dar generalmente un
buen desempeño. El método de pliegues puede ser la
técnica mas fácil de calcular pero produce resultados
bastante erráticos, a menos que la longitud de la llave
se aproximadamente igual a la longitud de la
dirección.
TABLAS
HASH
Una tabla hash o mapa hash es una
estructura de datos que asocia llaves o claves
con valores. La operación principal que
soporta de manera eficiente es la búsqueda:
permite el acceso a los elementos (teléfono y
dirección, por ejemplo) almacenados a partir
de una clave generada (usando el nombre o
número de cuenta, por ejemplo). Funciona
transformando la clave con una funcion
hashen un hash, un número que la tabla
hash utiliza para localizar el valor deseado.
OPERACIONES BÁSICAS
 Inserción(llave, valor) búsqueda(llave) que devuelve
valor La mayoría de las implementaciones también
incluyen borrar(llave). También se pueden ofrecer
funciones como iteración en la tabla, crecimiento y
vaciado. Algunas tablas hash permiten almacenar
múltiples valores bajo la misma clave.
 Para usar una tabla hash se necesita:
 Una estructura de acceso directo (normalmente un
array).
 Una estructura de datos con una clave
 Una función resumen(hash) cuyo dominio sea el espacio
de claves y su imagen (o rango) los números naturales

16
INSERSION
 Para almacenar un elemento en la tabla hash se
ha de convertir su clave a un número. Esto se
consigue aplicando la función resumen a la clave
del elemento.
 El resultado de la función resumen ha de mapearse
al espacio de direcciones del array que se emplea
como soporte, lo cual se consigue con la función
modulo. Tras este paso se obtiene un índice válido
para la tabla.
 El elemento se almacena en la posición de la tabla
obtenido en el paso anterior.

17
BUSQUEDA
 Para recuperar los datos, es necesario únicamente
conocer la clave del elemento, a la cual se le aplica
la función resumen.
 El valor obtenido se mapea al espacio de
direcciones de la tabla.
 Si el elemento existente en la posición indicada en
el paso anterior tiene la misma clave que la
empleada en la búsqueda, entonces es el deseado.
Si la clave es distinta, se ha de buscar el elemento
según la técnica empleada para resolver el
problema de las colisiones al almacenar el
elemento.
HASHING ABIERTO
Suposición de hashing uniforme: es cuando cualquier elemento es
igualmente probable de caer en cualquiera de las m entradas de la tabla
hash, independientemente de cualquier otro elemento.
Desde un “gran” Universo sólo un número reducido de claves serán
consideradas.

Universo de
Claves

Claves usadas

Función de
mapeo Lista
o Función de Enlazada
HASHING CERRADO





Universo de
Claves

Claves usadas

La “lista” se
almacena en la
Función de mapeo misma tabla
Función de hash
METODO DE BUSQUEDA
HASHING

You might also like