Ordenamiento de Archivos en Java

Post on 07-Jan-2017

200 views 0 download

Transcript of Ordenamiento de Archivos en Java

Ordenamiento de Archivos en Java

Estructura de Archivos Integrantes:

Erick BarzalloDavid Buñay

Gabriela Verdugo

Introducción.En ocasiones cuando se posee gran cantidad de datos que no caben en la memoria interna y se guardan en una memoria externa, es ahí cuando los algoritmos de ordenamiento externo son de gran ayuda y se presentarán a continuación.

Mezcla Directa

Mezcla Directa.

Es el método más simple de ordenación:

Utiliza el el esquema iterativo de separar secuencias de registros y su mezcla.

Se opera con el archivo original y dos archivos auxiliares.

Funcionamiento.

Lista a ordenar:

Separar el archivo original en dos archivos f1 y f2 :

34 12 59 73 44 8 19 28 51

f1

23

f2

Funcionamiento.

f1 34

f2 23

Funcionamiento.

f1 34

f2 23

12

59

Funcionamiento.

f1 34

f2 23

12

59

73

44

Funcionamiento.

f1 34

f2 23

12

59

73

44

8

19

Funcionamiento.

f1 34

f2 23

12

59

73

44

8

19

28

51

Funcionamiento.

Mezclar los archivos f1 y f2 combinando registros aislados (según sus claves) y formando pares ordenados que son escritos en el archivo O.

Separar pares de registros del archivo original O en los dos archivos auxiliares f1 y f2.

O 23 34 12 59 44 73 8 19 28 51

f1 23 34 44 73 28 51

f2 12 59 8 19

Funcionamiento

Mezclar los archivos f1 y f2 combinando registros aislados (según sus claves) y formando pares ordenados que son escritos en el archivo O.

O 12 23 34 59 8 4419 73 28 51

Funcionamiento.Se repiten los pasos de separación y mezcla, combinando cuádruplos para

formar óctuplos ordenados. En cada paso de separación y mezcla se duplica el tamaño de las subsecuencias mezcladas, así hasta que la longitud de la subsecuencia sea la que tiene el archivo, y en ese momento el archivo original O está ordenado.

Separación de cuádruplos:f1 12 23 34 59 28 51

f2 8 19 44 73

Funcionamiento.Mezcla formando óctuplos ordenados:

Separación de octuplos:

O 8 12 19 23 34 44 59 73 28 51

f1 8 12 19 23 34 44 59 73

f2 28 51

Funcionamiento.

Mezcla con la que ya se obtiene el archivo ordenado:

O 8 12 23 28 34 44 51 59 73

LISTA ORDENADA

Mezcla Natural

Mezcla Natural

El método de fusión natural mejora el tiempo de ejecución de la mezcla directa al introducir una pequeña variación respecto a la longitud de las secuencias de registros.

En el método de mezcla directa, las secuencias de registros tiene longitudes que son múltiplos de dos: 1, 2, 4,8, 16... de tal forma que el número de pasadas a realizar es fijo, dependiente del número de registros.

La mezcla directa no tiene en cuenta la circunstancia de que pueda haber, de manera natural, secuencias más largas ya ordenadas que también puedan mezclarse y dar lugar a otra secuencia ordenada.

Funcionamiento.Lista a ordenar:

Separación:

9 10 3 4 5 25 26 13 14 1

f1 9 10

f2 3 4

25

5

26 1

13 14

2

2

FuncionamientoFusión:

Separación:3 4 5 9 10 13 14 25 26 1 2

f1 3 4 5 9 10 1 2

f2 13 14 25 26

Funcionamiento.Fusión:

Separación:

3 4 5 9 10 13 14 25 1 2

f1 3 4 5 9 10 13 14 25 26

f2 1 2

Funcionamiento.

Fusión.

1 2 3 4 5 9 10 13 14 25 26

LISTA ORDENADA

Intercalación Polifásica

Intercalación Polifásica

- La idea básica de este método es aplicar una mezcla estratégica hasta vaciar el archivo

El método polifásico utiliza m archivos auxiliares para ordenar n registros de un archivo.

La característica que marca 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 en que uno de los archivos de entrada alcanza su final hay un cambio de cometido, pasa a ser considerado como archivo de salida, y el archivo que en ese momento era de salida pasa a ser de entrada y la mezcla de tramos continúa.

La sucesión de pasadas continúa hasta alcanzar el archivo ordenado.

Características - Utiliza m archivos auxiliares

- Se diferencia del resto de intercalados por la consideración de m-1 archivos

- Cuando un archivo de entrada alcanza su final, pasa a ser considerado archivo de salida

- Cabe recordar - La mezcla de k tramos de los archivos de entrada se transforman en kntramos

en el archivo de salida

Fases- Mientras existan datos de entrada en T0, se debe seguir los

siguientes pasos:- Fase 1

- Leer m llaves

- Ordenar las llaves por método interno

- Si las llaves anteriores se colocaron en T2, se procede a colocarlas en T3, caso contrario, colocarlas en T3

- Fase 2

- Intercalar el primer bloque en T2 con el primer bloque de T3

- Intercalar los siguientes arreglos en T2 y T3, dejando el resultado en T1

- Repetir los pasos anteriores hasta que T2 y T3 queden vacios

Ejemplo con m=3 archivos - Archivo original con 55 tramos

- Archivos auxiliares m=3

- 2 archivos de entrada y 1 de salida

Proceso 1.Distribuir de forma no uniforme en los archivos F1 con 34 tramos y

en F2 con 21 tramos por ejemplo

2.Se realiza la fusión de 21 tramos de F1 con los 21 tramos de F2, dando así lugar a 21 tramos en F3

55 Tramos

F1 34

F2 21

F3 0

55 Tramos

F1 34 13

F2 21 0

F3 0 21

3. F1 alcanza 13 tramos, F2 queda vacío y F3 consta con 21 tramos

4. F2 pasa a ser archivo de salida mientras que la mezcla continua entre F1 y F3

55 Tramos

F1 34 13

F2 21 0

F3 0 21

5. Se repite la mezcla pero con F1 y F3 igual a 13 tramos, los cuales se pasan al F2

6. F1 queda vacío por lo cual pasa a ser archivo de salida mientras el proceso continúa entre F2 con 13 tramos y F3 con 8

55 Tramos

F1 34 13 0

F2 21 0 13

F3 0 21 8

7. Se repite el proceso con 8 tramos, los cuales pasan a F1, dejando así a F3 como salida

8. El proceso se vuelve a repetir hasta que quede un solo tramo

55 Tramos

F1 34 13 0 8

F2 21 0 13 5

F3 0 21 8 0

55 Tramos

F1 34 13 0 8 3

F2 21 0 13 5 0

F3 0 21 8 0 5

55 Tramos

F1 34 13 0 8 3 0

F2 21 0 13 5 0 3

F3 0 21 8 0 5 2

55 Tramos

F1 34 13 0 8 3 0 2

F2 21 0 13 5 0 3 1

F3 0 21 8 0 5 2 0

55 Tramos

F1 34 13 0 8 3 0 2 1

F2 21 0 13 5 0 3 1 0

F3 0 21 8 0 5 2 0 1

55 Tramos

F1 34 13 0 8 3 0 2 1 0

F2 21 0 13 5 0 3 1 0 1

F3 0 21 8 0 5 2 0 1 0

Intercalando Mezcla Balanceado

Mezcla Balanceada

La mezcla equilibrada múltiple utiliza m archivos auxiliares, de los que m/2 son de entrada y m/2 de salida.

Inicialmente, se distribuyen los tramos del archivo de origen en los m/2 archivos auxiliares.

A partir de esta distribución, se repiten los procesos de mezcla reduciendo a la mitad el número de tramos hasta que queda un único tramo.

Características

●Evita el exceso de copiado de registros

●Una intercalación de M-vias usa 2M archivos

●La eficiencia de los métodos de ordenación externa es directamente proporcional al número de pasadas

●Para un aumento de eficiencia ○ Reducir el número de pasadas, reduciendo de esta forma la cantidad de

operaciones de entrada/salida

○ Incremento del número de archivos auxiliares

Pasos a seguir de la mezcla Balanceada

1.Distribuir registros del archivo original por tramos en los m/2 primeros archivos auxiliares. A continuación, estos se consideran archivos de entrada.

2.Mezclar tramos de los m/2 archivos de entrada y escribirlos consecutivamente en los m/2 archivos de salida.

3.Cambiar la finalidad de los archivos, los de entrada pasan a ser de salida y viceversa;

4.Se repite a partir del segundo paso hasta que quede un único tramo, entonces la secuencia está ordenada.

BibliografíaJoyanes Aguilar L. (2008). Estructura de Datos en Java.Blanca

Madrid: Pecharromán.

Gomez, V., Gomez, V. and perfil, V. (2016). Técnicas de Intercalación. [online] Victorgh84.blogspot.com. Available at:

http://victorgh84.blogspot.com/2015/09/tecnicas-de-intercalacion.html?m=1.

Enlace Externohttps://github.com/Erick03Andres/IntercalacionDirecta