Hash se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un registro, archivo, documentó, etc.
Una función de 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 (un subconjunto de los números naturales).
ventajas
- žSe pueden usar los valores naturales de la llave, puesto que se traducen internamente a direcciones fáciles de localizar.
- žSe logra independencia lógica y física, debido a que los valores de las llaves son independientes del espacio de direcciones.
- No se requiere almacenamiento adicional para los índices.
- No pueden usarse registros delongitud variable
- El archivo no esta clasificado
- žNo permite llaves repetidas
- žSolo permite acceso por una sola llave
costos
- žTiempo de procesamiento requerido para la aplicación de la función hash
- žTiempo de procesamiento y los accesos E/S requeridos para solucionar las colisiones.
funciones hash mas comunes
- žResiduo de la división
- žMedio del cuadrado
- žPliegue
hashing por residuo de la division
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).
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.
hashing 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.
operaciones basica
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.
insercion
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.
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.