SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Piero Divasto
Estudiante Ing. Civil Informatica
Universidad de Valparaiso
Las tablas hash están en la categoría de diccionarios. Los cuales son estructuras de datos
y algoritmos que permiten: buscar, inserta y descartar elementos.

Las tablas hash asocian las claves con valores. La operación principal, para la que se usan
tablas hash, es la de búsqueda. Esta propiedad es la más eficiente en este tipo de
estructuras. Esto funciona transformando la clave con una función Hash en un Hash, un
numero que la tabla utiliza para localizar el valor que se anda buscando.
   Al ingresas elementos, el problema que
    puede surgir es que pueden existir colisiones
    al ingresar dos datos.
   Para la resolución de estas colisiones hay dos
    formas.
     Hashing Abierto
     Hashing Cerrado
Dato -> H(x) ->
556   0

              256   1

                    2

DATO   H(x)   890   3
               .
               .
               .

              111

                        N
556   0
              colisión
                         256   1

                               2

DATO   H(x)              890   3
                          .
                          .
                          .

                         111

                                   N
   Hay varias formas para resolver las colisiones
    en este tipo de tablas.

     Hashing lineal
     Hashing cuadratico
     Hashing doble
556   0
                                      colisión
                                                  256   1

                                                        2

DATO                     H(x)                     890   3
                                                   .
                                                   .
                                                   .

                                                  111
   hi(x) = ( h(x) + i ) % B   con i = 1, 2, 3,…
                                                            N
556    0

                                                  256    1

                                                  DATO   2

DATO                     H(x)                     890    3
                                                   .
                                                   .
                                                   .

                                                  111
   hi(x) = ( h(x) + i ) % B   con i = 1, 2, 3,…
                                                             N
556   0
                                 colisión
                                            256   1

                                                  2

DATO                    H(x)                      3
                                             .
                                             .
                                             .

                                            111
        j = ( j+ inc + 1) % B;
                                                      N
       inc+=2;
556    0

                                 256    1

                                        2

DATO                    H(x)     DATO   3
                                  .
                                  .
                                  .

                                 111
        j = ( j+ inc + 1) % B;
                                            N
       inc+=2;
556   0
              colisión
                         256   1

                               2

DATO   H(x)                    3
                          .
                          .
                          .

                         111

                                   N
Sea T una tabla de hash de tamaño 10 y h la siguiente función de hash.

                              h(k) = 4 + 3k mod10

Se quieren insertar en T elementos con claves 1, 11, 5, 15, 55, 6, 26, 90, 50, 20 en ese
mismo orden usando h(k).


(a) Determine el resultado de insertar las claves en T si las colisiones se resuelven por
    encadenamiento (suponga que un nuevo elemento se agrega al final de una lista).


(b) Determine el resultado de insertar las claves en T si las colisiones se resuelven por
examinación lineal.
Teniendo las siguiente funciones hash:

         h1(x) = x mod 13   y    h2(x)= 1+(x mod 1 1)

                                                     i = 1,2,3….

Insertar los siguiente numero en una tabla de hashing cerrado de tamaño 13:
79-69-98-72-50-14

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Función cuadrática
Función cuadráticaFunción cuadrática
Función cuadrática
 
Curso ecuaciones, varias variables
Curso ecuaciones, varias variablesCurso ecuaciones, varias variables
Curso ecuaciones, varias variables
 
Clase 1
Clase 1Clase 1
Clase 1
 
Tema4 funcs elementales_3
Tema4 funcs elementales_3Tema4 funcs elementales_3
Tema4 funcs elementales_3
 
Más sobre funciones
Más sobre funcionesMás sobre funciones
Más sobre funciones
 
Actividad 9 funcion cuadratica-
Actividad 9  funcion cuadratica-Actividad 9  funcion cuadratica-
Actividad 9 funcion cuadratica-
 
Practica de Fisica 2
Practica de Fisica 2Practica de Fisica 2
Practica de Fisica 2
 
Algebra
AlgebraAlgebra
Algebra
 
Reglas de derivadas
Reglas de  derivadasReglas de  derivadas
Reglas de derivadas
 
Alg. (02) repaso ii 02 03-18
Alg. (02) repaso ii 02 03-18Alg. (02) repaso ii 02 03-18
Alg. (02) repaso ii 02 03-18
 
Act 2 gz_parte_ii
Act 2 gz_parte_iiAct 2 gz_parte_ii
Act 2 gz_parte_ii
 
Clase 01 CDI
Clase 01 CDIClase 01 CDI
Clase 01 CDI
 
S1 y s2 factorización
S1 y s2 factorizaciónS1 y s2 factorización
S1 y s2 factorización
 
Funciones Cuadráticas
Funciones CuadráticasFunciones Cuadráticas
Funciones Cuadráticas
 
Funcion cuadratica (modelacion)
Funcion cuadratica (modelacion)Funcion cuadratica (modelacion)
Funcion cuadratica (modelacion)
 
C4 rm ecuaciones de segundo grado - 5º
C4 rm   ecuaciones de segundo grado  - 5ºC4 rm   ecuaciones de segundo grado  - 5º
C4 rm ecuaciones de segundo grado - 5º
 
Factorizacion i
Factorizacion iFactorizacion i
Factorizacion i
 
Funciones exponenciales y logarítmicas
Funciones exponenciales y logarítmicasFunciones exponenciales y logarítmicas
Funciones exponenciales y logarítmicas
 
Clase 14 CDI
Clase 14 CDIClase 14 CDI
Clase 14 CDI
 
Diferenciales
DiferencialesDiferenciales
Diferenciales
 

Mehr von Piero Divasto

Lista doblemente enlazada
Lista doblemente enlazadaLista doblemente enlazada
Lista doblemente enlazadaPiero Divasto
 
Listas simplemente enlazadas
Listas simplemente enlazadasListas simplemente enlazadas
Listas simplemente enlazadasPiero Divasto
 
Presentacion Final Proyecto de Título
Presentacion Final Proyecto de TítuloPresentacion Final Proyecto de Título
Presentacion Final Proyecto de TítuloPiero Divasto
 

Mehr von Piero Divasto (6)

Arboles AVL
Arboles AVLArboles AVL
Arboles AVL
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Colas
ColasColas
Colas
 
Lista doblemente enlazada
Lista doblemente enlazadaLista doblemente enlazada
Lista doblemente enlazada
 
Listas simplemente enlazadas
Listas simplemente enlazadasListas simplemente enlazadas
Listas simplemente enlazadas
 
Presentacion Final Proyecto de Título
Presentacion Final Proyecto de TítuloPresentacion Final Proyecto de Título
Presentacion Final Proyecto de Título
 

Hash

  • 1. Piero Divasto Estudiante Ing. Civil Informatica Universidad de Valparaiso
  • 2. Las tablas hash están en la categoría de diccionarios. Los cuales son estructuras de datos y algoritmos que permiten: buscar, inserta y descartar elementos. Las tablas hash asocian las claves con valores. La operación principal, para la que se usan tablas hash, es la de búsqueda. Esta propiedad es la más eficiente en este tipo de estructuras. Esto funciona transformando la clave con una función Hash en un Hash, un numero que la tabla utiliza para localizar el valor que se anda buscando.
  • 3. Al ingresas elementos, el problema que puede surgir es que pueden existir colisiones al ingresar dos datos.  Para la resolución de estas colisiones hay dos formas.  Hashing Abierto  Hashing Cerrado
  • 5. 556 0 256 1 2 DATO H(x) 890 3 . . . 111 N
  • 6. 556 0 colisión 256 1 2 DATO H(x) 890 3 . . . 111 N
  • 7. Hay varias formas para resolver las colisiones en este tipo de tablas.  Hashing lineal  Hashing cuadratico  Hashing doble
  • 8. 556 0 colisión 256 1 2 DATO H(x) 890 3 . . . 111 hi(x) = ( h(x) + i ) % B con i = 1, 2, 3,… N
  • 9. 556 0 256 1 DATO 2 DATO H(x) 890 3 . . . 111 hi(x) = ( h(x) + i ) % B con i = 1, 2, 3,… N
  • 10. 556 0 colisión 256 1 2 DATO H(x) 3 . . . 111 j = ( j+ inc + 1) % B; N inc+=2;
  • 11. 556 0 256 1 2 DATO H(x) DATO 3 . . . 111 j = ( j+ inc + 1) % B; N inc+=2;
  • 12. 556 0 colisión 256 1 2 DATO H(x) 3 . . . 111 N
  • 13. Sea T una tabla de hash de tamaño 10 y h la siguiente función de hash. h(k) = 4 + 3k mod10 Se quieren insertar en T elementos con claves 1, 11, 5, 15, 55, 6, 26, 90, 50, 20 en ese mismo orden usando h(k). (a) Determine el resultado de insertar las claves en T si las colisiones se resuelven por encadenamiento (suponga que un nuevo elemento se agrega al final de una lista). (b) Determine el resultado de insertar las claves en T si las colisiones se resuelven por examinación lineal.
  • 14. Teniendo las siguiente funciones hash: h1(x) = x mod 13 y h2(x)= 1+(x mod 1 1) i = 1,2,3…. Insertar los siguiente numero en una tabla de hashing cerrado de tamaño 13: 79-69-98-72-50-14