Sei sulla pagina 1di 24

Taller Búsquedas Dinámicas.

Equipo 7

Julián David Rincón Castro – 20172020152


Jordy Esteban Pineda Velandia – 20172020119
Javier Andrés Aponte Quevedo – 20172020036
Jhonnatan Leonardo Daza Ibarra – 20162020011

Docente:

Julio Cesar Flórez Báez.

Ciencias de la Computación II

Universidad Distrital Francisco José de Caldas


Facultad Ingeniería
Ingeniería de Sistemas
Bogotá D.C.
2020

1
Tabla de contenido.

Introducción ……………………………………………………………………………………………..3

Objetivos
General ...………………………………………………………………………………………...3
Específicos………………………………………………………………………………………3

Marco Teórico
Búsquedas dinámicas…………………………………………………………………………3
Método de expansión total…………………………………………………………………...3
Método de expansión parcial………………………………………………………..……….4

Planteamiento del problema………………………………………………………………..…………4

Expansiones totales…………………………………………………………………………………….4

Reducciones totales…………………………………………………………………………………..10

Expansiones parciales………………………………………………………………………………..14

Reducciones parciales………………………………………………………………………………..21

Conclusiones …………………………………………………………………………………………..24

2
Introducción.

La transformación de claves hash en las búsquedas externas es una herramienta práctica en el


sentido que permite organizar, buscar y localizar información de una gran cantidad de registros
almacenados en memoria secundaria.
Sin embargo, una de las desventajas de este tipo de búsqueda, es que, si el número de cubetas
es pequeño en comparación con el número de bloques de registros, estos terminan
convirtiéndose en largas listas que hacen poco óptimas las búsquedas. en caso contrario si el
número de cubetas es mucho mayor que el número de registros, se desperdicia memoria al no
ser usada.
El hash dinámico da solución a este tipo de problemas, por lo que en este taller se explicará
cómo funcionan los métodos de expansiones totales y parciales, y reducciones totales y parciales
en las búsquedas externas dinámicas.

Objetivos.

General.
Explicar mediante un ejercicio el hash dinámico en la búsqueda de registros.

Específicos.
● insertar una cantidad dada de registros por medio de expansiones totales y
parciales dadas unas condiciones.
● eliminar algunos registros mediante reducciones totales y parciales cumpliendo
con unas condiciones.

Marco teórico.

Búsqueda dinámica.

También llamado hashing dinámico, su principal característica es su dinamismo para variar el


número de cubetas en función de su densidad de ocupación. se comienza con un número
determinado de cubetas, y a medida que se van llenando se asigna nuevas cubetas.

Método de expansión total.

Es el método más utilizado, consiste en duplicar el número de cubetas a medida que estas
superan el límite de densidad de ocupación previamente establecido. es decir si se tiene N
cubetas, al realizar la expansión total, el número de cubetas será 2N. este método también se da
en sentido contrario, es decir que a medida que la densidad de ocupación de cubetas disminuye,
estas también disminuyen en N/2.

3
Método de expansión parcial.

Consiste en incrementar en 50% el número de cubetas. haciendo que dos expansiones parciales
equivalgan a una total. es decir, que, si se tiene inicialmente N cubetas, al realizar una expansión
hay 1.5N cubetas, si se vuelve a realizar si se hace otra expansión 2N, y luego 3N tras otra
expansión parcial. también sucede que, si la densidad de ocupación es baja, se reduce
parcialmente el número de cubetas, cumpliendo la condición de que dos reducciones parciales
son igual a una reducción total.

Planteamiento del problema.

1. dado un arreglo de dos cubetas y tres registros, y una densidad de ocupación para
expansión del 82%, insertar los siguientes registros:

115-96-48-26-57-81-70-64-107-45-62-98-33-28-38

mediante el método de expansión total y parcial.

2. de los arreglos resultantes, eliminar los siguientes registros:

48-35-81-70-45-33-38-115

mediante reducción total y parcial, teniendo en cuenta una densidad de ocupación para
reducción de 125%

Expansiones Totales

Insertar los elementos 115, 96, 48, 79, 35, 26, 57, 81, 70, 64, 107, 45, 62, 98, 33, 28, 38. Con N
inicial igual a 2 y con R igual a 3.
1. Se crea las estructuras.
D.O = 0/4 = 0%

0 1

r1

r2

r3

2. Para ingresar el 115 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

4
D.O = 1/6 = 16.67%
H(115)= 115 mod 2 = 1

0 1

r1 115

r2

r3

3. Para ingresar el 96 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 2/6 = 33.34%


H(96)= 96 mod 2 = 0

0 1

r1 96 115

r2

r3

4. Para ingresar el 48 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 3/6 = 50%


H(48)= 48 mod 2 = 0

0 1

r1 96 115

r2 48

r3

5. Para ingresar el 79 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 4/6 = 66.6 %


H(79)= 79 mod 2 = 1

5
0 1

r1 96 115

r2 48 79

r3

6. Para ingresar el 35 se calcula la densidad de ocupación, como es mayor al 82%


entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 4.

D.O = 5/6 = 83,3 %

7. se recalculan los valores de las claves anteriormente ingresadas, y además se calcula


el valor de la densidad de ocupación correspondiente

H(115)=115 mod 4 = 3 -> D.O = 1/12 = 8,33%


H(96)=96 mod 4 = 0 -> D.O = 2/12 = 16,66%
H(48)=48 mod 4 = 0 -> D.O = 3/12 = 25%
H(79)=79 mod 4 = 3 -> D.O = 4/12 = 33,33%
H(35)=35 mod 4 = 3 -> D.O = 5/12 = 41,66%

0 1 2 3

r1 96 115

r2 48 79

r3 35

8. Para ingresar el 26 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 6/12 = 50%


H(26) = 26 mod 4 = 2

0 1 2 3

r1 96 26 115

r2 48 79

r3 35

6
9. Para ingresar el 57 se calcula la densidad de ocupación, como es menor al 82%
entonces se ingresa la clave

D.O = 7/12 = 58.34%


H(57) = 57 mod 4 = 1

0 1 2 3

r1 96 57 26 115

r2 48 79

r3 35

10. Para ingresar el 81 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 8/12 = 66.67%


H(81)= 81 mod 4 = 1

0 1 2 3

r1 96 57 26 115

r2 48 81 79

r3 35

11. Para ingresar el 70 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 9/12 = 75%


H(70)= 70 mod 4 = 2

0 1 2 3

r1 96 57 26 115

r2 48 81 70 79

r3 35

7
12. Para ingresar el 64 se calcula la densidad de ocupación, como es mayor al 82%
entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 8.

D.O = 10/12 = 83.34%

H(115) =115 mod 8 = 3 -> D.O = 1/24 =4,16%


H(96) = 96 mod 8 = 0 -> D.O = 2/24 =8,33 %
H(48) = 48 mod 8 = 0 -> D.O = 3/24 = 12,5%
H(79) = 79 mod 8 = 7 -> D.O = 4/24 = 16,66%
H(35) = 35 mod 8 = 3 -> D.O = 5/24 = 20,83%
H(26) = 26 mod 8 = 2 -> D.O = 6/24 = 25%
H(57) = 57 mod 8 = 1 -> D.O = 7/24 = 29,16%
H(81) = 81 mod 8 = 1 -> D.O = 8/24 = 33,33%
H(70) = 70 mod 8 = 6 -> D.O = 9/24 = 37,5%
H(64) = 64 mod 8 = 0 -> D.O = 10/24 = 41,66%

0 1 2 3 4 5 6 7

r1 96 57 26 115 70 79

r2 48 81 35

r3 64

13. Para ingresar el 107 se calcula la densidad de ocupación, como es menor al 82%
entonces se ingresa la clave

D.O = 11/24 = 45.8%


H(107) = 107 mod 8 = 3

0 1 2 3 4 5 6 7

r1 96 57 26 115 70 79

r2 48 81 35

r3 64 107

14. Para ingresar el 45 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 12/24 = 50%

8
H(45) = 45 mod 8 = 5

0 1 2 3 4 5 6 7

r1 96 57 26 115 45 70 79

r2 48 81 35

r3 64 107

15. Para ingresar el 62 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 13/24 = 54.16%


H(62) = 62 mod 8 = 6

0 1 2 3 4 5 6 7

r1 96 57 26 115 45 70 79

r2 48 81 35 62

r3 64 107

16. Para ingresar el 98 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 14/24 = 58.34%


H(98) = 98 mod 8 = 2

0 1 2 3 4 5 6 7

r1 96 57 26 115 45 70 79

r2 48 81 98 35 62

r3 64 107

17. Para ingresar el 33 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 15/24 = 62,5%


H(33) = 33 mod 8 = 1

9
0 1 2 3 4 5 6 7

r1 96 57 26 115 45 70 79

r2 48 81 98 35 62

r3 64 33 107

18. Para ingresar el 28 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 16/24 = 66,67%


H(28) = 28 mod 8 = 4

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107

19. Para ingresar el 38 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 17/24 = 70.83%


H(38) = 38 mod 8 = 6

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107 38

Reducciones Totales
Se debe eliminar 48, 35, 81, 70, 45, 33 38, 115.

1. Se calcula el valor inicial de la densidad de ocupación para reducción

D.O para reducción = 17/8 = 212%


D.O para expansión= 17/24 = 70,83%

10
0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107 38

2. Se elimina el 48 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 16/8 = 200%


D.O para expansión= 16/24 = 66.67%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 81 98 35 62

r3 64 33 107 38

3. Se elimina el 35 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 15/8 = 187.50%


D.O para expansión= 15/24 = 62.50%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 81 98 62

r3 64 33 107 38

4. Se elimina el 81 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 14/8 = 175%


D.O para expansión= 14/24 = 58,33%

11
0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 98 62

r3 64 33 107 38

5. Se elimina el 70 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 13/8 = 162,5%


D.O para expansión= 13/24 = 58,33%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 79

r2 98 62

r3 64 33 107 38

6. Se elimina el 45 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 12/8 = 150%


D.O para expansión= 12/24 = 50%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 33 107 38

7. Se elimina el 33 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 12/8 = 150%


D.O para expansión= 12/24 = 50%

12
0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 107 38

8. Se elimina el 38 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 11/8 = 137,5%


D.O para expansión= 11/24 = 45,8%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 107

9. Se elimina el 115 y como su valor de reducción es menor a 125%, entonces se hace la


reducción parcial

D.O para reducción = 9/8 = 112,5%

10. Se hace la reducción y luego se reasignan las claves a la nueva estructura con 6
cubetas, finalmente se calcula el valor de densidad de ocupación para reducción de la
última clave.

H(96) = 96 mod 4 = 0-> D.O = 1/12 =8,33%


H(79) = 79 mod 4 = 3 -> D.O = 2/12 =16,66%
H(26) = 26 mod 4 = 2 -> D.O = 3/12 =25%
H(57) = 57 mod 4 = 1 -> D.O = 4/12 = 33,33%
H(64) = 64 mod 4 = 0 -> 4 D.O = 5/12 = 41,66%
H(107) = 107 mod 4 = 3 -> D.O = 6/12 =50%
H(62) = 62 mod 4 = 2 -> D.O = 7/12 =58,33%
H(98) = 98 mod 4 = 2 -> D.O = 8/12 = 66,66 %
H(28) = 28 mod 4 = 0 -> D.O = 9/12 = 75% -> D.O de reducción 9/4 =225%

13
0 1 2 3

r1 96 57 26 79

r2 64 62 107

r3 28 98

Expansiones Parciales

Insertar los elementos 115, 96, 48, 79, 35, 26, 57, 81, 70, 64, 107, 45, 62, 98, 33, 28, 38. Con N
inicial igual a 2 y con R igual a 3.

1. Se crea las estructuras.


D.O = 0/4 = 0%

0 1

r1

r2

r3

2. Para ingresar el 115 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 1/6 = 16.67%


H(115)= 115 mod 2 = 1

0 1

r1 115

r2

r3

3. Para ingresar el 96 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 2/6 = 33.34%


H(96)= 96 mod 2 = 0

14
0 1

r1 96 115

r2

r3

4. Para ingresar el 48 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 3/6 = 50%


H(48)= 48 mod 2 = 0

0 1

r1 96 115

r2 48

r3

5. Para ingresar el 79 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 4/6 = 66.6 %


H(79)= 79 mod 2 = 1

0 1

r1 96 115

r2 48 79

r3

6. Para ingresar el 35 se calcula la densidad de ocupación, como es mayor al 82%


entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 3.

D.O = 5/6 = 83,3 %

7. se recalculan los valores de las claves anteriormente ingresadas, y además se calcula


el valor de la densidad de ocupación correspondiente.

15
H(115)=115 mod 3 = 1 -> D.O = 1/9 = 11,11%
H(96)=96 mod 3 = 0 -> D.O = 2/9 = 22,22%
H(48)=48 mod 3 = 0 -> D.O = 3/9 = 33,33%
H(79)=79 mod 3 = 1 -> D.O = 4/9 = 44,44%
H(35)=35 mod 3 = 2 -> D.O = 5/9 = 55,56 %

0 1 2

r1 96 115 35

r2 48 79

r3

8. Para ingresar el 26 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 6/9 = 66,67 %


H(26)= 26 mod 3 = 2

0 1 2

r1 96 115 35

r2 48 79 26

r3

9. Para ingresar el 57 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 7/9 = 77,78 %


H(57)= 57 mod 3 = 0

0 1 2

r1 96 115 35

r2 48 79 26

r3 57

16
10. Para ingresar el 81 se calcula la densidad de ocupación, como es mayor al 82%
entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 4.

D.O = 8/9 = 88.89 %

11. se recalculan los valores de las claves anteriormente ingresadas, y además se calcula
el valor de la densidad de ocupación correspondiente.

H(115)=115 mod 4 = 3 -> D.O = 1/12 = 8,33%


H(96)=96 mod 4 = 0 -> D.O = 2/12 = 16,66%
H(48)=48 mod 4 = 0 -> D.O = 3/12 = 25%
H(79)=79 mod 4 = 3 -> D.O = 4/12 = 33,33%
H(35)=35 mod 4 = 3 -> D.O = 5/12 = 41,66%
H(26)=26 mod 4 = 2 -> D.O = 6/12 = 50%
H(57)=57 mod 4 = 1 -> D.O = 7/12 =58,33%
H(81)=81 mod 4 = 1 -> D.O = 8/12 =66,66%

0 1 2 3

r1 96 57 26 115

r2 48 81 79

r3 35

12. Para ingresar el 70 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 9/12 = 75 %
H(70)= 70 mod 4 = 2

0 1 2 3

r1 96 57 26 115

r2 48 81 70 79

r3 35

13. Para ingresar el 64 se calcula la densidad de ocupación, como es mayor al 82%


entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 6.

17
D.O = 10/12 = 83.33 %

14. se recalculan los valores de las claves anteriormente ingresadas, y además se calcula
el valor de la densidad de ocupación correspondiente.

H(115)= 115 mod 6 = 1 -> D.O = 1/18 = 5,55%


H(96)= 96 mod 6 = 0 -> D.O = 2/18 = 11,11%
H(48)= 48 mod 6 = 0 -> D.O = 3/18 =16,66 %
H(79)= 79 mod 6 = 1 -> D.O = 4/18 = 22,22%
H(35)= 35 mod 6 = 5 -> D.O = 5/18 = 27,77%
H(26)= 26 mod 6 = 2 -> D.O = 6/18 = 33,33%
H(57)= 57 mod 6 = 3 -> D.O = 7/18 = 38,88%
H(81)= 81 mod 6 = 3 -> D.O = 8/18 = 44,44%
H(70)= 70 mod 6 = 4 -> D.O = 9/18 = 50%
H(64)= 64 mod 6 = 4 -> D.O = 10/18 = 55,55%

0 1 2 3 4 5

r1 96 115 26 57 70 35

r2 48 79 81 64

r3

15. Para ingresar el 107 se calcula la densidad de ocupación, como es menor al 82%
entonces se ingresa la clave

D.O = 11/18 = 61.11 %


H(107)= 107 mod 6 = 5

0 1 2 3 4 5

r1 96 115 26 57 70 35

r2 48 79 81 64 107

r3

16. Para ingresar el 45 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 12/18 = 66,67 %


H(45)= 45 mod 6 = 3

18
0 1 2 3 4 5

r1 96 115 26 57 70 35

r2 48 79 81 64 107

r3 45

17. Para ingresar el 62 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 13/18 = 72,22 %


H(62)= 62 mod 6 = 2

0 1 2 3 4 5

r1 96 115 26 57 70 35

r2 48 79 62 81 64 107

r3 45

18. Para ingresar el 98 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 14/18 = 77,77 %


H(98)= 98 mod 6 = 2

0 1 2 3 4 5

r1 96 115 26 57 70 35

r2 48 79 62 81 64 107

r3 98 45

19. Para ingresar el 33 se calcula la densidad de ocupación, como es mayor al 82%


entonces se tiene que hacer una expansión total y volver a recalcular los valores con la
función hash H(k) = K mod 8.

D.O = 15/18 = 83.33 %

20. se recalculan los valores de las claves anteriormente ingresadas, y además se calcula
el valor de la densidad de ocupación correspondiente.

19
H(115) =115 mod 8 = 3 -> D.O = 1/24 =4,16%
H(96) = 96 mod 8 = 0 -> D.O = 2/24 =8,33 %
H(48) = 48 mod 8 = 0 -> D.O = 3/24 = 12,5%
H(79) = 79 mod 8 = 7 -> D.O = 4/24 = 16,66%
H(35) = 35 mod 8 = 3 -> D.O = 5/24 = 20,83%
H(26) = 26 mod 8 = 2 -> D.O = 6/24 = 25%
H(57) = 57 mod 8 = 1 -> D.O = 7/24 = 29,16%
H(81) = 81 mod 8 = 1 -> D.O = 8/24 = 33,33%
H(70) = 70 mod 8 = 6 -> D.O = 9/24 = 37,5%
H(64) = 64 mod 8 = 0 -> D.O = 10/24 = 41,66%
H(107) = 107 mod 8 = 3 -> D.O = 11/24 = 45,83%
H(45) = 45 mod 8 = 5 -> D.O = 12/24 = 50%
H(62) = 62 mod 8 = 6 -> D.O = 13/24 = 54,17%
H(98) = 98 mod 8 = 2 -> D.O = 14/24 = 58,33%
H(33) = 33 mod 8 = 1 -> D.O = 15/24 = 62,5%

0 1 2 3 4 5 6 7

r1 96 57 26 115 45 70 79

r2 48 81 98 35 62

r3 64 33 107

21. Para ingresar el 28 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 16/24 = 66,67%


H(28) = 28 mod 8 = 4

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107

22. Para ingresar el 38 se calcula la densidad de ocupación, como es menor al 82%


entonces se ingresa la clave

D.O = 17/24 = 70.83%


H(38) = 38 mod 8 = 6

20
0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107 38

Reducciones Parciales

Se debe eliminar 48, 35, 81, 70, 45, 33 38, 115.

1. Se calcula el valor inicial de la densidad de ocupación para reducción

D.O para reducción = 17/8 = 212%


D.O para expansión= 17/24 = 70,83%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 48 81 98 35 62

r3 64 33 107 38

2. Se elimina el 48 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 16/8 = 200%


D.O para expansión= 16/24 = 66.67%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 81 98 35 62

r3 64 33 107 38

3. Se elimina el 35 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 15/8 = 187.50%

21
D.O para expansión= 15/24 = 62.50%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 81 98 62

r3 64 33 107 38

4. Se elimina el 81 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 14/8 = 175%


D.O para expansión= 14/24 = 58,33%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 70 79

r2 98 62

r3 64 33 107 38

5. Se elimina el 70 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 13/8 = 162,5%


D.O para expansión= 13/24 = 58,33%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 45 79

r2 98 62

r3 64 33 107 38

6. Se elimina el 45 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 12/8 = 150%

22
D.O para expansión= 12/24 = 50%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 33 107 38

7. Se elimina el 33 y luego se calcula el valor de la densidad de ocupación para reducción,


como es mayor a 125% no se reduce la tabla.

D.O para reducción = 11/8 = 137,5%


D.O para expansión= 11/24 = 45,8%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 107 38

8. Se elimina el 38 y luego se calcula el valor de la densidad de ocupación para reducción,


como es igual a 125% no se reduce la tabla.

D.O para reducción = 10/8 = 125%


D.O para expansión= 10/24 = 41,66%

0 1 2 3 4 5 6 7

r1 96 57 26 115 28 79

r2 98 62

r3 64 107

9. Se elimina el 115 y como su valor de reducción es menor a 125%, entonces se hace la


reducción parcial

D.O para reducción = 9/8 = 112,5%

23
10. Se hace la reducción y luego se reasignan las claves a la nueva estructura con 6
cubetas, finalmente se calcula el valor de densidad de ocupación para reducción de la
última clave.

H(96) = 96 mod 6 = 0 -> D.O = 1/18 =5,55%


H(79) = 79 mod 6 = 1 -> D.O = 2/18 =11,11%
H(26) = 26 mod 6 = 2 -> D.O = 3/18 =16,66%
H(57) = 57 mod 6 = 3 -> D.O = 4/18 = 22,22%
H(64) = 64 mod 6 = 4 -> D.O = 5/18 =27,77%
H(107) = 107 mod 6 = 5 -> D.O = 6/18 =33,33%
H(62) = 62 mod 6 = 2 -> D.O = 7/18 =38,88%
H(98) = 98 mod 6 = 2 -> D.O = 8/18 = 44,44%
H(28) = 28 mod 6 = 4 -> D.O = 9/18 = 50% -> D.O de reducción 9/6 =150%

0 1 2 3 4 5

r1 96 79 26 57 64 107

r2 62 28

r3 98

Conclusiones.

Las búsquedas dinámicas facilitan la optimización de tiempo y espacio, según se agreguen o


eliminen datos. Su desventaja radica en que, en cada operación, ya sea de expansión o
reducción se debe recalcular la función hash con cada registro, lo cual puede significar un gasto
de tiempo, especialmente si hay una gran cantidad de registros. El objetivo será siempre buscar
optimizar recursos. Tanto los métodos totales como parciales permiten esto, sin embargo, es
mediante un análisis que el desarrollador escogerá el uno o el otro.

Para este caso particular se puede observar que el método de expansiones totales requiere
menos operaciones, se realizan solo dos expansiones, es decir se recalcula la función hash solo
dos veces. Mientras que el método parcial de expansión se realiza cuatro veces. Lo que muestra
que fue menos optimo el método de expansiones parciales en cuestión de tiempo. En cuanto a
espacio, a final ambos métodos terminan con el mismo número de cubetas.

En las reducciones, en cuanto a tiempo ambos métodos, total y parcial, se realizaron una vez,
sin embargo, al terminar de eliminar por el método de reducción total, el espacio vacío es menor
que el espacio vacío al terminar de eliminar por el método de reducción parcial.

En conclusión, para este ejercicio en particular, el método más optimo en tiempo para insertar es
el método de expansión total, y el método más optimo en espacio para eliminar es el método de
reducción total.

24

Potrebbero piacerti anche