SlideShare a Scribd company logo
1 of 20
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

More Related Content

What's hot (17)

Hashing
HashingHashing
Hashing
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de Búsqueda
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Interna
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Aritmética Modular
Aritmética ModularAritmética Modular
Aritmética Modular
 
EXPOSICION HASH
EXPOSICION HASHEXPOSICION HASH
EXPOSICION HASH
 
Funciones (parte ii) 1
Funciones (parte ii) 1Funciones (parte ii) 1
Funciones (parte ii) 1
 
Funciones (parte ii)
Funciones (parte ii)Funciones (parte ii)
Funciones (parte ii)
 
Arreglos
ArreglosArreglos
Arreglos
 
Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)
 
2.algoritmos
2.algoritmos2.algoritmos
2.algoritmos
 
Funciones 2 carlos mata
Funciones 2 carlos mataFunciones 2 carlos mata
Funciones 2 carlos mata
 
Hash
HashHash
Hash
 
Funciones racionales
Funciones racionalesFunciones racionales
Funciones racionales
 

Viewers also liked

Evidencia digital
Evidencia digitalEvidencia digital
Evidencia digital
elizaestefi
 
Informaticaforense 111007144032-phpapp01
Informaticaforense 111007144032-phpapp01Informaticaforense 111007144032-phpapp01
Informaticaforense 111007144032-phpapp01
Juan Carlos Tapias
 
Diapositiva Informatica forense JDBC
Diapositiva Informatica forense JDBCDiapositiva Informatica forense JDBC
Diapositiva Informatica forense JDBC
Judaba
 

Viewers also liked (11)

INFORMATICA FORENSE
INFORMATICA FORENSEINFORMATICA FORENSE
INFORMATICA FORENSE
 
Evidencia digital
Evidencia digitalEvidencia digital
Evidencia digital
 
Informatica forense
Informatica forenseInformatica forense
Informatica forense
 
Informaticaforense 111007144032-phpapp01
Informaticaforense 111007144032-phpapp01Informaticaforense 111007144032-phpapp01
Informaticaforense 111007144032-phpapp01
 
Informática Forense a Base de Datos
Informática Forense a Base de DatosInformática Forense a Base de Datos
Informática Forense a Base de Datos
 
Auditoria Informatica Forense
Auditoria Informatica ForenseAuditoria Informatica Forense
Auditoria Informatica Forense
 
Ejercicios funciones de hash
Ejercicios funciones de hashEjercicios funciones de hash
Ejercicios funciones de hash
 
Diapositiva Informatica forense JDBC
Diapositiva Informatica forense JDBCDiapositiva Informatica forense JDBC
Diapositiva Informatica forense JDBC
 
Informatica forense
Informatica forenseInformatica forense
Informatica forense
 
Informatica forense
Informatica forenseInformatica forense
Informatica forense
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to Dipersion hash (20)

Dipersion hash
Dipersion hashDipersion hash
Dipersion hash
 
Dipersion
DipersionDipersion
Dipersion
 
Dipersion HASH
Dipersion HASHDipersion HASH
Dipersion HASH
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Computadoras y mecanica de fluidos
Computadoras y mecanica de fluidosComputadoras y mecanica de fluidos
Computadoras y mecanica de fluidos
 
Unidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedaUnidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busqueda
 
Tablas de dispersion
Tablas de dispersionTablas de dispersion
Tablas de dispersion
 
matlab
matlabmatlab
matlab
 
Matrices
MatricesMatrices
Matrices
 
Funciones
FuncionesFunciones
Funciones
 
Investigación #1
Investigación #1Investigación #1
Investigación #1
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLAB
 
Informe
InformeInforme
Informe
 
Matlab -compu_aplicada
Matlab  -compu_aplicadaMatlab  -compu_aplicada
Matlab -compu_aplicada
 
Presentacion Matrices
Presentacion MatricesPresentacion Matrices
Presentacion Matrices
 
Presentacion Matrices
Presentacion MatricesPresentacion Matrices
Presentacion Matrices
 
Matlab
MatlabMatlab
Matlab
 
Hoja de calculo
Hoja de calculoHoja de calculo
Hoja de calculo
 
Hoja de calculo
Hoja de calculoHoja de calculo
Hoja de calculo
 

More from favi_hola

More from favi_hola (7)

Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles
Arboles Arboles
Arboles
 
Procesamiento coordinado
Procesamiento coordinadoProcesamiento coordinado
Procesamiento coordinado
 
Indizacion y operaciones
Indizacion y operacionesIndizacion y operaciones
Indizacion y operaciones
 
Registros
RegistrosRegistros
Registros
 
Dispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundarioDispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundario
 
Indexamiento
IndexamientoIndexamiento
Indexamiento
 

Dipersion hash

  • 1. DiSPERSIoNHASH EQUIPO#8 Ing. En Computacion CUALTOS
  • 2. 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
  • 3. 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
  • 4. Operaciones de una tabla de dispersion * Crear y dar de alta elementos* Insertar elementos * Eliminar elementos EQUIPO#8 Ing. En Computacion CUALTOS
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Ejemplo: Para 245643, h(245643) = 483; vamos paso a paso: 245643  2456432  60340483449  (posiciones 4,5 y 6) EQUIPO#8 Ing. En Computacion CUALTOS
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. EQUIPO#8 Ing. En Computacion CUALTOS
  • 19. 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
  • 20. EQUIPO#8 Ing. En Computacion CUALTOS