Sunteți pe pagina 1din 10

Intituto Tecnologico N 38 De Cd.

Victoria
Unidad Academica Abasolo

Estructura De Datos

Facilitador: Jess Emmanuel Hernndez Aranda

Papasnte: Julio Cesar Resendiz Ramirez N de Control: 11380876

Pgina |1 Pgina |1

Instituto Tecnologico N 38 De Cd. Victoria

ndice
Introduccion ...2
FUNCION HASH VENTAJAS: DESVENTAJAS:

Algoritmos hasting 3
ALGORITMO HASHING ALGORITMOS DE HASH MAS COMUNES

Funciones de hash. ..5


FUNCIONES DE HASH RESIDUO DE LA DIVISIN RESIDUO DE LA DIVISIN RESIDUO DE LA DIVISIN

COMPARACIN ENTRE LAS FUNCIONES HASH..7


TABLAS HASH

Pgina |2

Instituto Tecnologico N 38 De Cd. Victoria

OPERACIONES BSICAS ..8


INSERSION BUSQUEDA HASHING ABIERTO HASHING CERRADO

METODO DE BUSQUEDA HASHING


Hash: se refiere a una funcin o mtodo para generar claves o llaves que representen de manera casi unvoca a un documento, registro, archivo, etc., resumir o identificar un dato a travs de la probabilidad, utilizando una funcin hash o algoritmo hash. Un hash es el resultado de dicha funcin o algoritmo. FUNCION HASH Es una funcin para resumir o identificar probabilsticamente un gran conjunto de informacin, dando como resultado un conjunto imagen finito generalmente menor. Varan en los conjuntos de partida y de llegada y en cmo afectan a la salida similitudes o patrones de la entrada VENTAJAS: Se pueden usar los valores naturales de la llave, puesto que se traducen internamente a direcciones fciles de localizar Se logra independencia lgica y fsica, debido a que los valores de las llaves son independientes del espacio de direcciones No se requiere almacenamiento adicional para los ndices. DESVENTAJAS: El archivo no esta clasificado No permite llaves repetidas Solo permite acceso por una sola llave Costos Tiempo de procesamiento requerido para la aplicacin de la funcin hash
Pgina |3

Instituto Tecnologico N 38 De Cd. Victoria

Pgina |4

Instituto Tecnologico N 38 De Cd. Victoria

ALGORITMO HASHING
Algoritmo que se utiliza para generar un valor de hash para algn 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 sntesis 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 autenticacin cifrada. Gracias al MD5 se consigue, por ejemplo, que un usuario demuestre que conoce una contrasea sin necesidad de enviar la contrasea a travs de la red.

Pgina |5

Instituto Tecnologico N 38 De Cd. Victoria

FUNCIONES DE HASH Residuo de la divisin Medio del cuadrado Pliegue RESIDUO DE LA DIVISIN La idea de este mtodo es la de dividir el valor de la llave entre un numero apropiado, y despus utilizar el residuo de la divisin como direccin relativa para el registro (direccin = llave mdulo divisor). Mientras que el valor calculado real de una direccin relativa, dados tanto un valor de llave como el divisor, es directo; la eleccin del divisor apropiado puede no ser tan simple. Existen varios factores que deben considerarse para seleccionar el divisor: RESIDUO DE LA DIVISIN El rango de valores que resultan de la operacin "llave % divisor", va desde cero hasta el divisor 1. Luego, el divisor determina el tamao 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 direccin relativa dada. El divisor deber seleccionarse de tal forma que la probabilidad de colisin sea minimizada. Como escoger este numero? Mediante investigaciones se ha demostrado que los divisores que son nmeros 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 tambin como los divisores primos, siempre y cuando los divisores no primos no contengan ningn factor primo menor de 20. Lo mas comn es elegir el nmero primo mas prximo al total de direcciones. RESIDUO DE LA DIVISIN Ejemplo: Numero de direcciones 996. La eleccion de m sera 997, que es el primo mas cercano. Se aplica esta funcin hash cuyo nmero es: 245643 h(245643) = 245643 mod 997 = 381 MEDIO DEL CUADRADO En esta tcnica, la llave es elevada al cuadrado, despus algunos dgitos
Pgina |6

Instituto Tecnologico N 38 De Cd. Victoria

especficos se extraen de la mitad del resultado para constituir la direccin relativa. Si se desea una direccin de n dgitos, entonces los dgitos se truncan en ambos extremos de la llave elevada al cuadrado, tomando n dgitos intermedios. Las mismas posiciones de n dgitos deben extraerse para cada llave. MEDIO DEL CUADRADO

Ejemplo: Utilizando esta funcin hashing el tamao del archivo resultante es de 10n donde n es el numero de dgitos extrados de los valores de la llave elevada al cuadrado. POR PLIEGUE En esta tcnica el valor de la llave es particionada en varias partes, cada una de las cuales (excepto la ultima) tiene el mismo numero de dgitos que tiene la direccin relativa objetivo. Estas particiones son despus plegadas una sobre otra y sumadas. El resultado, es la direccin relativa. Igual que para el mtodo del medio del cuadrado, el tamao del espacio de direcciones relativas es una potencia de 10.

Pgina |7

Instituto Tecnologico N 38 De Cd. Victoria

COMPARACIN ENTRE LAS FUNCIONES HASH Aunque alguna otra tcnica pueda desempearse mejor en situaciones particulares, la tcnica del residuo de la divisin proporciona el mejor desempeo. Ninguna funcin hash se desempea siempre mejor que las otras. El mtodo del medio del cuadrado puede aplicarse en archivos con factores de cargas bastantes bajas para dar generalmente un buen desempeo. El mtodo de pliegues puede ser la tcnica mas fcil de calcular pero produce resultados bastante errticos, a menos que la longitud de la llave se aproximadamente igual a la longitud de la direccin. Tablas hash Una tabla hash o mapa hash es una estructura de datos que asocia llaves o claves con valores. La operacin principal que soporta de manera eficiente es la bsqueda: permite el acceso a los elementos (telfono y direccin, por ejemplo) almacenados a partir de una clave generada (usando el nombre o nmero de cuenta, por ejemplo). Funciona transformando la clave con una funcion hashen un hash, un nmero que la tabla hash utiliza para localizar el valor deseado.

Pgina |8

Instituto Tecnologico N 38 De Cd. Victoria

OPERACIONES BSICAS Insercin(llave, valor) bsqueda(llave) que devuelve valor La mayora de las implementaciones tambin incluyen borrar(llave). Tambin se pueden ofrecer funciones como iteracin en la tabla, crecimiento y vaciado. Algunas tablas hash permiten almacenar mltiples 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 funcin resumen(hash) cuyo dominio sea el espacio de claves y su imagen (o rango) los nmeros naturales INSERSION Para almacenar un elemento en la tabla hash se ha de convertir su clave a un nmero. Esto se consigue aplicando la funcin resumen a la clave del elemento. El resultado de la funcin resumen ha de mapearse al espacio de direcciones del array que se emplea como soporte, lo cual se consigue con la funcin modulo. Tras este paso se obtiene un ndice vlido para la tabla. El elemento se almacena en la posicin de la tabla obtenido en el paso anterior. BUSQUEDA Para recuperar los datos, es necesario nicamente conocer la clave del elemento, a la cual se le aplica la funcin resumen. El valor obtenido se mapea al espacio de direcciones de la tabla. Si el elemento existente en la posicin indicada en el paso anterior tiene la misma clave que la empleada en la bsqueda, entonces es el deseado. Si la clave es distinta, se ha de buscar el elemento segn la tcnica empleada para resolver el problema de las colisiones al almacenar el elemento. HASHING ABIERTO

Suposicin 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 slo un nmero reducido de claves sern consideradas.

Pgina |9

Instituto Tecnologico N 38 De Cd. Victoria

HASHING CERRADO En Hashing cerrado, todos los elementos o claves son almacenadas en la tabla hashing misma. Es decir, cada entrada de la tabla contiene un elemento del conjunto dinmico o NULL.

P g i n a | 10

S-ar putea să vă placă și