Universidad de Cuenca
Facultad de Ingeniería
Programación 3
Ordenamientos Externos
Código en:
https://github.com/XaviColla/Proyecto-de-Ordenamientos-Externos
4. Es el método más simple de ordenación externa.
Utiliza un sistema iterativo para separar secuencias
de registros y mezclas.
Opera con un archivo original y dos auxiliares.
Ordenación por intercalación directa
4
5. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
5
6. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
15
18
6
7. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
15 62
18 27
7
8. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
15 62 14
18 27 35
8
9. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
15 62 14 2
18 27 35 89
9
10. Proceso
1. Separar los registros individuales del archivo original O en dos
archivos auxiliares F1 y F2
O
F1 y F2
15 18 62 27 14 35 2 89 15
15 62 14 2 15
18 27 35 89
10
11. Proceso
2. Mezclar los archivos F! y F2 combinando registros aislados
(Según las Claves) y formando pares ordenados que son escritos en
el archivo original
F1 y F2
O
15 18
15 62 14 2 15
18 27 35 89
11
12. Proceso
2. Mezclar los archivos F! y F2 combinando registros aislados
(Según las Claves) y formando pares ordenados que son escritos en
el archivo original
F1 y F2
O
15 18 27 62
15 62 14 2 15
18 27 35 89
12
13. Proceso
2. Mezclar los archivos F! y F2 combinando registros aislados
(Según las Claves) y formando pares ordenados que son escritos en
el archivo original
F1 y F2
O
15 18 27 62 14 35
15 62 14 2 15
18 27 35 89
13
14. Proceso
2. Mezclar los archivos F! y F2 combinando registros aislados
(Según las Claves) y formando pares ordenados que son escritos en
el archivo original
F1 y F2
O
15 18 27 62 14 35 2 89
15 62 14 2 15
18 27 35 89
14
15. Proceso
2. Mezclar los archivos F! y F2 combinando registros aislados
(Según las Claves) y formando pares ordenados que son escritos en
el archivo original
F1 y F2
O
15 18 27 62 14 35 2 89 15
15 62 14 2 15
18 27 35 89
15
16. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 14 35 2 89 15
16
17. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 14 35 2 89 15
15 18
27 62
17
18. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 14 35 2 89 15
15 18 14 35
27 62 2 89
18
19. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 14 35 2 89 15
15 18 14 35 15
27 62 2 89
19
20. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 14 35 15
27 62 2 89
20
21. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62
15 18 14 35 15
27 62 2 89
21
22. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 2 14 35 89
15 18 14 35 15
27 62 2 89
22
23. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 2 14 35 89 15
15 18 14 35 15
27 62 2 89
23
24. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 2 14 35 89 15
24
25. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 2 14 35 89 15
15 18 27 62
2 14 35 89
25
26. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
15 18 27 62 2 14 35 89 15
15 18 27 62 15
2 14 35 89
26
27. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 18 27 35 62 89
15 18 27 62 15
2 14 35 89
27
28. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 18 27 35 62 89 15
15 18 27 62 15
2 14 35 89
28
29. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 18 27 35 62 89 15
29
30. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 18 27 35 62 89 15
2 14 15 18 27 35 62 89
15
30
31. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 18 27 35 62 89
15
31
32. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 15 18 27 35 62 89
2 14 15 18 27 35 62 89
15
32
33. Proceso
3. Se repite en proceso combinado pares de registros para
combinar cuádruplos a su vez para formar óctuplos ordenados hasta
que la longitud de la subsecuencia sea igual a la longitud del archivo
original, cuando pase esto el archivo estará ordenado
O
F1 y F2
2 14 15 15 18 27 35 62 89
33
35. Mejora el tiempo de ejecución de la mezcla directa.
Para lograr esto se realiza pequeñas particiones tomando
secuencias ordenadas que también pueden mezclarse y
dar lugar a otra secuencia ordenada , a diferencia de la
directa que toma secuencias fijas
Opera con un archivo original y dos auxiliares.
Ordenación por intercalación natural
35
36. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
36
37. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
37
38. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
38
39. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
39
40. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
40
41. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
41
42. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
42
43. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
43
44. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
20 25 27
44
45. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
20 25 27
17 23
45
46. Proceso
1. Se buscan secuencias ordenadas en el archivo O original y se las
agrega a los archivos auxiliares F1 y F2
O
F1 y F2
20 25 27 17 23 12 25
20 25 27 12 25
17 23
46
47. Proceso
2. Mezclamos los archivos para formar otra secuencia ordenada y la
ponemos en el archivo original
O
F1 y F2
20 25 27 12 25
17 23
47
48. Proceso
2. Mezclamos los archivos para formar otra secuencia ordenada y la
ponemos en el archivo original
O
F1 y F2
17 20 23 25 27
20 25 27 12 25
17 23
48
49. Proceso
2. Mezclamos los archivos para formar otra secuencia ordenada y la
ponemos en el archivo original
O
F1 y F2
17 20 23 25 27 12 25
20 25 27 12 25
17 23
49
61. Proceso
3. Se repite el proceso del paso 1
O
F1 y F2
12 17 20 23 25 25 27
17 20 23 25 27
12 25
61
62. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
62
63. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
63
64. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
64
65. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
65
66. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
66
67. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
67
68. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
68
69. Proceso
4. El proceso se acaba cuando la longitud de una secuencia ordenada sea
igual a la longitud del archivo original
O
F1 y F2
12 17 20 23 25 25 27
69
71. Realiza pequeñas particiones tomando secuencias ordenadas que
también pueden mezclarse y dar lugar a otra secuencia ordenada ,
al igual que la intercalación natural.
La diferencia es que se utiliza m archivos auxiliares en donde m/2
archivos son de entrada y m/2 archivos son de salida.
De esta manera el proceso de mezcla se realiza en una sola fase en
lugar de dos (separación y mezcla).
Ordenación por intercalación balanceada
71
72. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
72
73. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
73
74. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
74
75. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
75
76. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
76
77. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
77
78. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
78
79. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
79
80. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27
80
81. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27
17 23
81
82. Proceso
1. Distribuir registros del archivo por tramos en los m/2 primeros archivos originales, a estos
se les considera archivos de entrada.
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27 12 25
17 23
82
83. Proceso
2. Mezclar los tramos de los m/2 archivos de entrada y escribirlos consecutivamente en los
m/2 archivos de salida
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27 12 25
17 23
17 20 23 25 27
83
84. Proceso
2. Mezclar los tramos de los m/2 archivos de entrada y escribirlos consecutivamente en los
m/2 archivos de salida
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27 12 25
17 23
12 25
17 20 23 25 27
84
85. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
20 25 27 12 25
17 23
12 25
17 20 23 25 27
85
86. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 25
17 20 23 25 27
86
87. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12
12 25
17 20 23 25 27
87
88. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17
12 25
17 20 23 25 27
88
89. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17 20
12 25
17 20 23 25 27
89
90. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17 20 23
12 25
17 20 23 25 27
90
91. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17 20 23 25
12 25
17 20 23 25 27
91
92. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17 20 23 25 25
12 25
17 20 23 25 27
92
93. Proceso
3. Cambiar la finalidad de los archivos, los de entrada pasan a ser los de salida y viceversa,
repetir el segundo paso hasta que el archivo quede ordenado
O
Salida F1, F2
Entrada F3, F4
20 25 27 17 23 12 25
12 17 20 23 25 25 27
12 25
17 20 23 25 27
93
94. Proceso
4. El proceso termina cuando quede solo un archivo de entrada
O
Entrada F1, F2
Salida F3, F4
20 25 27 17 23 12 25
12 17 20 23 25 25 27
94
96. El método polifásico utiliza m archivos auxiliares para ordenar n
registros de un archivo.
La diferencia de este método respecto a los otros es que
continuamente se consideran m-1 archivos de entrada desde los
que se mezclan registros y un archivo de salida.
En el momento que uno del los archivos de entrada alcance el
final hay un cambio el archivo de salida pasa a ser de entrada y
se continua la mezcla.
Ordenación por intercalación polifásica
96
97. Proceso
La estrategia sigue al método de la mezcla equilibrada múltiple el
cual emplea 2m archivos para ordenar n registros, del tal forma
que si los que si los n registros están distribuidos en m tramos en
una pasada (distribución y mezcla) quedan ordenados.
Este método usa m archivos auxiliares para ordenar n registros.
Se consideran m-1 archivos de entrada desde los cuales se mezcla
los registros y un archivo de salida.
Al momento que un archivo de entrada alcanza su final, este pasa
a ser un archivo de salida y el archivo de salida pasa a ser de
entrada.
97
112. Link de interés
Bibliografía:
Joyanes, Aguilar. (2008), Estructura de datos en Java. Madrid, España: Editorial
Mac Gran Hill
Codigo en:
https://github.com/XaviColla/Proyecto-de-Ordenamientos-Externos
112