ordenamiento de archivos en java

39
Ordenamiento de Archivos en Java Estructura de Archivos Integrantes: Erick Barzallo David Buñay Gabriela Verdugo

Upload: erick-barzallo

Post on 07-Jan-2017

200 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Ordenamiento de Archivos en Java

Ordenamiento de Archivos en Java

Estructura de Archivos Integrantes:

Erick BarzalloDavid Buñay

Gabriela Verdugo

Page 2: Ordenamiento de Archivos en Java

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.

Page 3: Ordenamiento de Archivos en Java

Mezcla Directa

Page 4: Ordenamiento de Archivos en Java

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.

Page 5: Ordenamiento de Archivos en Java

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

Page 6: Ordenamiento de Archivos en Java

Funcionamiento.

f1 34

f2 23

Page 7: Ordenamiento de Archivos en Java

Funcionamiento.

f1 34

f2 23

12

59

Page 8: Ordenamiento de Archivos en Java

Funcionamiento.

f1 34

f2 23

12

59

73

44

Page 9: Ordenamiento de Archivos en Java

Funcionamiento.

f1 34

f2 23

12

59

73

44

8

19

Page 10: Ordenamiento de Archivos en Java

Funcionamiento.

f1 34

f2 23

12

59

73

44

8

19

28

51

Page 11: Ordenamiento de Archivos en Java

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

Page 12: Ordenamiento de Archivos en Java

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

Page 13: Ordenamiento de Archivos en Java

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

Page 14: Ordenamiento de Archivos en Java

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

Page 15: Ordenamiento de Archivos en Java

Funcionamiento.

Mezcla con la que ya se obtiene el archivo ordenado:

O 8 12 23 28 34 44 51 59 73

LISTA ORDENADA

Page 16: Ordenamiento de Archivos en Java

Mezcla Natural

Page 17: Ordenamiento de Archivos en Java

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.

Page 18: Ordenamiento de Archivos en Java

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

Page 19: Ordenamiento de Archivos en Java

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

Page 20: Ordenamiento de Archivos en Java

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

Page 21: Ordenamiento de Archivos en Java

Funcionamiento.

Fusión.

1 2 3 4 5 9 10 13 14 25 26

LISTA ORDENADA

Page 22: Ordenamiento de Archivos en Java

Intercalación Polifásica

Page 23: Ordenamiento de Archivos en Java

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.

Page 24: Ordenamiento de Archivos en Java

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

Page 25: Ordenamiento de Archivos en Java

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

Page 26: Ordenamiento de Archivos en Java

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

- Archivos auxiliares m=3

- 2 archivos de entrada y 1 de salida

Page 27: Ordenamiento de Archivos en Java

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

Page 28: Ordenamiento de Archivos en Java

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

Page 29: Ordenamiento de Archivos en Java

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

Page 30: Ordenamiento de Archivos en Java

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

Page 31: Ordenamiento de Archivos en Java

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

Page 32: Ordenamiento de Archivos en Java

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

Page 33: Ordenamiento de Archivos en Java

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

Page 34: Ordenamiento de Archivos en Java

Intercalando Mezcla Balanceado

Page 35: Ordenamiento de Archivos en Java

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.

Page 36: Ordenamiento de Archivos en Java

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

Page 37: Ordenamiento de Archivos en Java

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.

Page 38: Ordenamiento de Archivos en Java

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.

Page 39: Ordenamiento de Archivos en Java

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