EXPOSICION HASH
-
Upload
orlando-melo -
Category
Technology
-
view
2.150 -
download
2
description
Transcript of EXPOSICION HASH
![Page 1: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/1.jpg)
HASHPRESENTADO POR:
Diana Tobar Martínez
Orlando Melo Tascon
Heybel Tascon
![Page 2: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/2.jpg)
HASH• Un hash es el resultado de una
función o algoritmo.
• 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.
![Page 3: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/3.jpg)
• El término hash proviene de la palabra picar y mezclar
• La operación principal que soporta de manera eficiente es la búsqueda: permite el acceso a los elementos (teléfono y dirección) almacenados a partir de una clave generada (usando el nombre o número de cuenta).
![Page 4: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/4.jpg)
TABLAS• Las tablas hash se suelen implementar
sobre arrays de una dimensión, aunque se pueden hacer implementaciones multidimensionales basadas en varias claves.
• las tablas hash proveen tiempo constante de búsqueda promedio O sin importar el número de elementos en la tabla.
![Page 5: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/5.jpg)
• En casos particularmente malos el tiempo de búsqueda puede llegar a O(n), es decir, en función del número de elementos.
• Comparada con otras estructuras de arrays asociadas, las tablas hash son más útiles cuando se almacenan grandes cantidades de información.
![Page 6: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/6.jpg)
• Las tablas hash almacenan la información en posiciones pseudo-aleatorias, así que el acceso ordenado a su contenido es bastante lento.
![Page 7: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/7.jpg)
EJEMPLO DE TABLA HASH
![Page 8: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/8.jpg)
FUNCIONAMIENTO• Las operaciones básicas implementadas
en las tablas hash son: 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.
![Page 9: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/9.jpg)
INSERCION1. Para almacenar un elemento en la tabla hash
se ha de convertir su clave a un número
2. 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 módulo. Tras este paso se obtiene un índice válido para la tabla.
![Page 10: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/10.jpg)
• El elemento se almacena en la posición de la tabla obtenido en el paso anterior.
• Si en la posición de la tabla ya había otro elemento, se ha producido una colisión. Este problema se puede solucionar asociando una lista a cada posición de la tabla, aplicando otra función o buscando el siguiente elemento libre.
![Page 11: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/11.jpg)
BUSQUEDA1. Para recuperar los datos, es
necesario únicamente conocer la clave del elemento, a la cual se le aplica la función resumen.
2. El valor obtenido se mapea al espacio de direcciones de la tabla.
![Page 12: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/12.jpg)
3. 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.
![Page 13: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/13.jpg)
REQUISITOS PARA UNA TABLA HASH
• 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.
![Page 14: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/14.jpg)
FUNCIONES HASH
1.Hash de División
2.Hash de Multiplicación
![Page 15: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/15.jpg)
Resolución de colisiones
• Si dos llaves generan un hash apuntando al mismo índice, los registros correspondientes no pueden ser almacenados en la misma posición. En estos casos, cuando una casilla ya está ocupada, debemos encontrar otra ubicación donde almacenar el nuevo registro, y hacerlo de tal manera que podamos encontrarlo cuando se requiera.
![Page 16: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/16.jpg)
ENCADENAMIENTO
![Page 17: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/17.jpg)
Direccionamiento abierto
![Page 18: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/18.jpg)
VENTAJASEl acceso a los datos suele ser muy rápido
si se cumplen las siguientes condiciones:
• Una razón de ocupación no muy elevada (a partir del 75% de ocupación se producen demasiadas colisiones y la tabla se vuelve ineficiente).
• Una función resumen que distribuya uniformemente las claves. Si la función está mal diseñada, se producirán muchas colisiones.
![Page 19: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/19.jpg)
DESVENTAJAS• Necesidad de ampliar el espacio de la
tabla si el volumen de datos almacenados crece. Se trata de una operación costosa.
• Dificultad para recorrer todos los elementos. Se suelen emplear listas para procesar la totalidad de los elementos.
![Page 20: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/20.jpg)
• Desaprovechamiento de la memoria. Si se reserva espacio para todos los posibles elementos, se consume más memoria de la necesaria; se suele resolver reservando espacio únicamente para punteros a los elementos.
![Page 21: EXPOSICION HASH](https://reader033.fdocuments.net/reader033/viewer/2022061516/5589695cd8b42a94268b4602/html5/thumbnails/21.jpg)
GRACIAS…