Algoritmos intercalación

Post on 13-Apr-2017

55 views 0 download

Transcript of Algoritmos intercalación

Universidad De CuencaNombres:

David ValladaresEdisson SiguaPaúl Arévalo

Temas: Ordenamientos Externos

Indice

1.Proyectos en GitHub2.Ordenamiento por intercalación DIRECTA3.Ordenamiento por intercalación NATURAL4.Ordenamiento por intercalación BALANCEADA5.Ordenamiento por intercalación POLIFÁSICA

Proyectos en GitHub

Intercalación Directa y Naturalhttps://github.com/jeims17/IntercalacionDirectaNatural

Intercalación Balanceadahttps://github.com/jeims17/IntercalacionBalanceada

Intercalación Polifásicahttps://github.com/jeims17/IntercalacionPolifasica

ORDENAMIENTO POR INTERCALACIÓN DIRECTA

Ordenamiento por Intercalación Directa

Probablemente es el método de ordenación externa más utilizado por su fácil comprensión.

Su idea central está basada en la estrategia de hacer subdivisiones y fusiones sucesivas de secuencias de tamaño cada vez más grande.

Este proceso se repite hasta que el número de pasadas sea la parte entera de ((n + 1)/2) siendo n el número de registros existentes en el archivo.

Ejemplo

F:

F1:

F2:

09 75 0568 012514

Ejemplo

F:

F1:

F2:

75 0568 012514

09´

Ejemplo

F:

F1:

F2:

0568 012514

09´

75´

Ejemplo

F:

F1:

F2:

05 012514

09´ 68´

75´

Ejemplo

F:

F1:

F2:

05 0125

09´ 68´

75´ 14´

Ejemplo

F:

F1:

F2:

05 01

09´ 68´ 25´

75´ 14´

Ejemplo

F:

F1:

F2:

01

09´ 68´ 25´

75´ 14´ 05´

Ejemplo

F:

F1:

F2:

09´ 68´ 25´ 01´

75´ 14´ 05´

Ejemplo

F:

F1:

F2:

09 75´

68´ 25´ 01´

14´ 05´

Ejemplo

F:

F1:

F2:

09 75´ 14 68´

25´ 01´

05´

Ejemplo

F:

F1:

F2:

09 75´ 25´14 0568´

01´

Ejemplo

F:

F1:

F2:

09 75´ 25´14 01´0568´

Ejemplo

F:

F1:

F2:

25´14 01´0568´

09 75´

Ejemplo

F:

F1:

F2:

25´ 01´05

09 75´

14 68´

Ejemplo

F:

F1:

F2:

01´

09 75´ 05 25´

14 68´

Ejemplo

F:

F1:

F2:

09 75´ 05 25´

14 68´ 01´

Ejemplo

F:

F1:

F2:

09 14 68 75´

05 25´

01´

Ejemplo

F:

F1:

F2:

09 14 0568 25´0175´

Ejemplo

F:

F1:

F2:

05 25´01

09 14 68 75´

Ejemplo

F:

F1:

F2:

09 14 68 75´

01 05 25´

Ejemplo

F:

F1:

F2:

01 05 6809 75´2514

Archivos utilizados

Código

ORDENAMIENTO POR INTERCALACIÓN NATURAL

Ordenamiento por Intercalación Natural

Este ordenamiento es una optimización del algoritmo de intercalación directa.

La idea central de este ordenamiento consiste en realizar las particiones tomando secuencias ordenadas de tamaño máximo en lugar de secuencias fijas. Luego se fusiona estas particiones en el archivo original.

Este ordenamiento se realiza hasta que uno de los archivos de las particiones queda vacío.

Ejemplo

F:

F1:

F2:

09 15 3064 011520

Ejemplo

F:

F1:

F2:

30 011520

09 15 64

Ejemplo

F:

F1:

F2:

30 0115

09 15 64´

20´

Ejemplo

F:

F1:

F2:

01

09 15 64´ 30´15

20´

Ejemplo

F:

F1:

F2:

09 15 64´ 30´15

20´ 01´

Ejemplo

F:

F1:

F2:

09 15 20 64´

30´15

01´

Ejemplo

F:

F1:

F2:

09 15 1520 30´0164´

Ejemplo

F:

F1:

F2:

15 30´01

09 15 20 64´

Ejemplo

F:

F1:

F2:

09 15 20 64´

01 15 30´

Ejemplo

F:

F1:

F2:

01 09 3015 64´2015

Ejemplo

F:

F1:

F2:

01 09 3015 64´2015

Archivos utilizados

Código

ORDENAMIENTO POR INTERCALACIÓN BALANCEADA

Método de Intercalación Balanceada

Realizar particiones tomando secuencias ordenadas de máxima longitud en lugar de secuencias ordenadas de tamaño fijo previamente determinadas.

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

El proceso de mezcla se realiza en una sola fase en lugar de las dos fases (separación, fusión) de los algoritmos mezcla directa y fusión natural.

Pasos

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; repetir a partir del segundo paso hasta que quede un único tramo, entonces la secuencia está ordenada.

Ejemplo

15 3 187 18919 9 7 1

3 7 19

15

9 18 18

Ejemplo

9 7 1

3 7 19

15 9

9 18 18

7

1

1 7 9

3 7 189 191815

3 7 19

15 9

9 18 18

7

1

Inactivo

InactivoInactivo

1 7 9

3 7 189 191815

1 3 97 159 18 18 197

Archivos Utilizados

Interfaz de código

Interfaz de código

Interfaz de código

ORDENAMIENTO POR INTERCALACIÓN POLIFÁSICA

Método Ordenamiento Polifásico

En este método podemos ordenar “n” registros en m archivos auxiliares

m-1 Archivos de entrada

1 Archivo de Salida

Archivos de Entrada: Los archivos de entrada son aquellos que contendrán la información para realizar el ordenamiento

Archivos de Salida: Los archivos de Salida son aquellos en donde se guardarán los registros.

Ejemplo de Mezcla Polifásica

Datos EsencialesNúmero de Archivos Auxiliares : 3 ---> m

2 Archivos de Entrada ---> m - 1

1 Archivo de Salida ---> RestanteSalida Salida Entrada

Proceso 1 Distribución de los Registros

El primer paso para realizar el ordenamiento es la de distribución de los registros del “ArchivoOriginal” a los archivos auxiliares que posteriormente entrada.

Con ello conseguimos 2 objetivosEl distribuir los registros del “ArchivoOriginal” a los archivos auxiliares que

posteriormente serán de entrada, de forma no uniforme

Obtener el número de tramos para realizar el ordenamiento.

Para este ejemplo en concreto supongamos que el número de Tramos sea 55

Paso 2 Proceso34 21

0

Archivos de Entrada

Archivos de Salida

13 0

21

Archivos de Entrada

Archivos de Salida

Proceso13 21

0

Archivos de Entrada

Archivos de Salida

0 8

13

Archivos de Entrada

Archivos de Salida

Proceso13 8

0

Archivos de Entrada

Archivos de Salida

5 0

8

Archivos de Entrada

Archivos de Salida

Proceso5 8

0

Archivos de Entrada

Archivos de Salida

0 3

5

Archivos de Entrada

Archivos de Salida

Proceso5 3

0

Archivos de Entrada

Archivos de Salida

2 0

3

Archivos de Entrada

Archivos de Salida

Proceso2 3

0

Archivos de Entrada

Archivos de Salida

0 1

2

Archivos de Entrada

Archivos de Salida

Proceso2 1

0

Archivos de Entrada

Archivos de Salida

1 0

1

Archivos de Entrada

Archivos de Salida