Dipersion hash
Upcoming SlideShare
Loading in...5
×
 

Dipersion hash

on

  • 1,300 views

 

Statistics

Views

Total Views
1,300
Views on SlideShare
1,239
Embed Views
61

Actions

Likes
0
Downloads
11
Comments
1

3 Embeds 61

http://gianncid.wordpress.com 49
http://archivos2011.blogspot.com 6
http://mikevaldivia.wordpress.com 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • gracias! me sirviò
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Dipersion hash Dipersion hash Presentation Transcript

  • DiSPERSIoNHASH
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Tabla de dispersión
    Son estructuras de datos que se usan para manejar una secuencia de elementos, de tal forma que cada elemento tiene un valor clave que pertenece a un rango de valores.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Definicionde una tabla de dispersion
    Tienen la finalidad de realizar una búsqueda o eliminación de un registro con una complejidad constante.
    La organización ideal de una tabla es aquella en la cual el campo llave de los elementos corresponde directamente con el índice de la tabla.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Operaciones de una tabla de dispersion
    * Crear y dar de alta elementos* Insertar elementos * Eliminar elementos
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Buscar (tabla T, clave x)
    Revuelve el elemento de la tabla T[h(x)]
    Insertar(tabla T, elemento k)
    Añade el elemento k, T[h(clave(k))] k
    Elimina(tabla T, clave x)
    Retira de la tabla el elemento con clave x, T[h(x)] LIBRE
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Funciones de dispersión
    Una función se convierte en el dato del campo clave, un entero o una cadena , en un valor entero en el rango de definición del arreglo que va a almacenar los elementos de tal forma que sea adecuado para indexar el arreglo.
    Se tiene que realizar una función hash para realizar la transformación y determinar su dirección del conjunto (k) de claves sobre el conjunto (L) de memoria.h(x) : K – L
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Si x es una clave, h(x) se denomina direccionamiento hash de la clave x. Si la clave es una cadena de caracteres, se hace la transformación previa a un valor entero.
    Una colisión es cuando dos claves diferentes dan la misma dirección.
    A la hora de seleccionar una función hash se debe tomar en cuenta que se pueda evaluar fácilmente,y tratar de distribuir uniformemente las direcciones sobre el conjunto “L” de forma que se minimice el número de colisiones.
    *La experiencia enseña que habrá que preparar la resolución de colisiones para cuando se produzca alguna.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Aritmetica modular
    Una función de dispersión aritmética modular genera valores dispersos calculando el resto de la división entre la clave(x) y el tamaño de la tabla (m)h(x) = x mod m
    La operación “resto” siempre genera un número entero entre 0 y -1. Por tanto, ésta función de dispersión calcula Valores enteros de 0.. -1.Las elecciones de tamaño de la tabla (m) recomendadas, son números primos que estén cercanos al número de elementos(n) que se tienen previstos que almacene la tabla.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Ejemplo:N=900 registros 245643 245981 257135Una buena elección de m, en este supuesto, es 997 al ser el número primo más próximo y tiene como (n/m) = 0.8.Aplicando la aritmética modular se tieneh (245643) = 245643 mod 997 = 381h (245981) = 245981 mod 997 = 719h (257135) = 257135 mod 997 = 906.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Plegamiento
    Esta técnica se utiliza cuando el valor entero puede ser demasiado grande que no se pueda almacenar en memoria y se hace una división en partes iguales de x.
    La función se define como h(x) X1 + X2, + …. +Xr*se desprecian los dígitos más significativos que se obtienen del acarreo.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Ejemplo:245643 245981 257135 se dividen en dos grupos de tres dígitos h(245643) = 245 + 643 =888h(245981) = 245 + 981=1266---266 (se ignora el acarreo 1)h(257135) = 257 + 135=392Aveces se hace la inversa alas partes pares de x.h(245643) =245 + 346 = 591h(245981) = 245 +189 =434h(257135) = 257 +531 =788
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Mitad del Cuadrado
    Es una técnica de obtener direcciones dispersas.
    Consiste en calcular el cuadrado de la clave “x” y de esto extraer los dígitos que se encuentran en ciertas posiciones.
    Se extraen tres dígitos siempre, aquellos que están en las mismas posiciones .
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Ejemplo:
    Para 245643, h(245643) = 483; vamos paso a paso:
    245643  2456432  60340483449  (posiciones 4,5 y 6)
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Metodode la Multiplicacion
    Este método primero multiplica la clave “x” por una constante real “r” (entre o y 1).
    En segundo lugar, determina la parte decimal “D” del numero obtenido de “rx”.
    Por ultimo multiplica el tamaño de la tabla “m” por “d” y al truncarse el resultado se obtiene un numero entero en el rango 0.m-1.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Ejemplo:1.- R * X
    2.- D = R * X – parte entera (R * X)
    3.-h(X) = parte entera (M * D)
    1.-.6180334 * 245981  152024.4738
    2.-D = 152024.4738 – parte entera (152024)  .4738.
    3.-h(245981) = 1.000 * .4738  parte entera (473.8)  473.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Colisiones y Resolución de Colisiones
    Cuando en la dirección de dos registros se da el caso de que la posición sea igual a la de la tabla, entonces se dice que hay una colisión que hay que resolver.
    Hay varias técnicas de resolución de colisiones, pero las más populares son encadenamiento y direccionamiento abierto.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • Por encadenamiento
    En la técnica más simple de encadenamiento, cada casilla en el arreglo referencial una lista de los registros insertados que colisionan en la misma casilla.
    La inserción consiste en encontrar la casilla correcta y agregar al final de la lista correspondiente.
    El borrado consiste en buscar y quitar de la lista.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • EQUIPO#8 Ing. En Computacion CUALTOS
  • Por direccionamiento abierto
    Las tablas hash de direccionamiento abierto pueden almacenar los registros directamente en el arreglo.
    Las colisiones se resuelven mediante un sondeo del arreglo, en el que se buscan diferentes localidades del arreglo (secuencia de sondeo) hasta que el registro es encontrado o se llega a una casilla vacía, indicando que no existe esa llave en la tabla.
    EQUIPO#8 Ing. En Computacion CUALTOS
  • EQUIPO#8 Ing. En Computacion CUALTOS