9 Hash Principio Para encontrar algo en la
- Slides: 13
9. Hash
Principio Para encontrar algo en la menor cantidad posible de intentos, hay que guardarlo “en su lugar”
¿Cuál es el lugar de un dato? � Número de lista � Id numérico � A = 1, B = 2, . . => ABAD = 1+2+1+4 = 8 Posición definida con una función de conversión sobre la llave primaria
Funciones Hash 1. 2. 3. Truncamiento Doblamiento Aritmética Modular
1. Truncamiento Ignorar parte de la llave y usar lo restante directamente como índice (cálculo rápido, mala dispersión)
2. Doblamiento Dividir la llave y combinarla 62538194 = 625 + 381 + 94 = 1100 = 110 (mejor dispersión que el truncamiento)
3. Aritmética Modular h(k) = k % M �M primo mayor que el número de registros (se distribuye en localidades consecutivas)
Colisión A dos llaves les corresponde la misma posición Hash: Mil registros K 1 = 66103194 h(K 1) = 66103194 % 1001 = 157 K 2 = 66104195 h(K 2) = 66103195 % 1001 = 157
Solución de Colisiones 1. 2. 3. Doble Conversión Apertura de Direcciones Encadenamiento
1. Doble Conversión g(h(k)) K 1 = 66103194 h(K 1) = 157 g(h(k 1)) = 194 + h(k 1) g(h(K 1)) = 194 + 157 = 351 K 2 = 66104195 h(K 2) = 157 g(h(K 2)) = 195 + 157 = 352
2. Apertura de Direcciones La llave que colisiona, se coloca en la siguiente posición disponible de la tabla
3. Encadenamiento En arreglo de: 3 a. Cabezas de listas ligadas 3 b. Raíz de árbol (ABB, B, B+)
Propuesta de Trabajo Final Arreglo Hash de cien casillas con encadenamiento a listas ligadas que distribuye, con módulo, quinientas llaves de cuatro (dígitos o caracteres) mismas que son leídas de un archivo de texto, al final muestra para cada casilla del arreglo su lista ligada
- Tema de hash hash
- Tema de hash hash
- Horner
- En la clase anterior
- En in
- Sacrificios que agradan a dios jw
- Porque mejor es un dia en tus atrios
- El costo de algo es lo que sacrificamos para tenerlo
- Diagonal mayor de un rombo
- Como puede el hombre encontrar a dios
- Parbola
- Maximo comun divisor de 126
- Coacervados de oparin
- Representante reino monera