compilado de resoluciones de ejercicios de final de algoritmos y programación ii del año 2010

706
Compilado de resoluciones de ejercicios de final de Algoritmos y Programaci´on II del a˜ no 2010 Enrique P. Calot * C´atedra de Algoritmos y Programaci´on II Facultad de Ingenier´ ıa Universidad de Buenos Aires 2010-01-20 * ecalot@fi.uba.ar

Upload: henri-calot

Post on 28-Jul-2015

76 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Compilado de resoluciones de ejercicios de final de Algoritmos y

Programacion II del ano 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-01-20

*[email protected]

Page 2: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 1 Motivacion

1. Motivacion

El siguiente compilado cuenta con ocho resoluciones a parciales tomados por nuestra Catedra de

Algoritmos y Programacion II de la Facultad de Ingenierıa de la Universidad de Buenos Aires. Cada

examen contiene un enunciado, su resolucion y todas las posibles resoluciones que se podrıan haber

llegado a tomar. La presente compilacion fue realizada con el objetivo de que el alumno aprenda el

funcionamiento de los algoritmos en la practica, pero se recomienda fuertemente complementar el mismo

con una lectura sobre el material teorico sobre cada tema. Las resoluciones son un complemento muy

importante para el estudio y para entender los algoritmos, pero no contienen, ni pretenden contener una

explicacion completa del funcionamiento de los mismos.

2. Licencia

El presente documento esta protegido por las leyes de propiedad intelectual y sujeto a la licencia

Creative Commons CC BY-SA 3.0. Esta licencia permite Compartir –copiar, distribuir y comunicar

publicamente la obra–, hacer obras derivadas e incluso hacer un uso comercial de la misma, siempre y

cuando se atribuyan los creditos de autorıa de la obra y se comparta con una licencia compatible.

Enrique P. Calot Algoritmos y Programacion II

Page 3: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 8 de Febrero de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-02-08

*[email protected]

Page 4: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 62.2.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. c. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.4. c. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5. d. Seleccion Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6. e. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.6.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3. Resolucion explayada 16

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2. Quick Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5. Merge Polifasico de las salidas por seleccion natural . . . . . . . . . . . . . . . . . . . . . 423.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 423.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 423.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 423.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.7. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 423.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 453.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.8. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 473.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.9. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 473.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 503.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.10. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 503.10.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.10.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 52

Enrique P. Calot Algoritmos y Programacion II

Page 5: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.11.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.11.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.12. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.12.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.12.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 563.13.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 563.13.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.14. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 563.14.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.14.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 593.15.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 593.15.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.16. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.16.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.16.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 633.17.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 633.17.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.18. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 643.18.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.18.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.19. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 643.19.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 643.19.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.20. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 663.20.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.20.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 663.21.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 673.21.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.22. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.22.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.22.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 703.23.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 703.23.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.24. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 703.24.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.24.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 723.25.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 723.25.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.26. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.26.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.26.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 743.27.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 74

Algoritmos y Programacion II Facultad de Ingenierıa

Page 6: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.28. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.28.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.29. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.30. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.31. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.32. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.33. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Enrique P. Calot Algoritmos y Programacion II

Page 7: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

263, 267, 167, 395, 22†, 330, 49, 114†, 108†, 295, 356†, 3, 238, 224,

222, 47†, 200, 156†, 250, 162, 318†

Se pide:

a. El Sort Externo se suele utilizar cuando el tamano del lote de datos es superior al que puedealmacenar la maquina en su memoria interna, ya que en tal caso es mas util ordenar mediantetecnicas de Sort Interno. ¿en que otro caso se debe usar Sort Externo, incluso conociendo el tamanodel lote de datos y sabiendo que este es menor a la memoria interna?

b. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

c. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Quick Sort (hasta habercompletado dos niveles de recursividad).

d. Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

e. Procesar el B-tree de orden tal que, con un elemento –a excepcion de la raız– hace underflow perocon 2 no, resultante de ingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

222, 224†, 250†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Pregunta teorica

El Sort Externo se suele utilizar cuando el tamano del lote de datos es superior al que puede almacenarla maquina en su memoria interna, ya que en tal caso es mas util ordenar mediante tecnicas de Sort

Algoritmos y Programacion II Facultad de Ingenierıa

Page 8: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 b. Merge Polifasico

Fases c1 c2 c3

∑3i=1 ci < 21

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Interno. ¿en que otro caso se debe usar Sort Externo, incluso conociendo el tamano del lote de datos ysabiendo que este es menor a la memoria interna?

2.1.1. Respuesta

Influye el factor temproal, es decir cuando aun no tengo todos los elementos a ordenar, me convieneir ordenandolos a medias pese a que en suma si los ordeno todos juntos me tomarıa menos tiempo.

2.2. b. Merge Polifasico

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

2.2.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.2.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.3. c. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

2.3.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

2.4. c. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

Enrique P. Calot Algoritmos y Programacion II

Page 9: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.4 c. Quick Sort 7

E1 E2 E3 S

D D D –D D D –D D D –D 263 267 –167 395 22 –330 49 114 –108 295 356 –3 238 – –224 222 – –47 200 – –156 250 – –162 – – –318 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 263 267 263, 267167 395 22 22, 167, 395330 49 114 49, 114, 330108 295 356 108, 295, 356

E1 E2 S E3

3 238 – D

224 222 – D

47 200 – D

156 250 – 263, 267162 – – 22, 167, 395318 – – 49, 114, 330– – – 108, 295, 356

Cuadro 3: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 10: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.5 d. Seleccion Natural

E1 E2 E3 S

D D D D

D D D D

D D D D

D 263 267 263, 267167 395 22 22, 167, 395330 49 114 49, 114, 330108 295 356 108, 295, 356

E1 E2 S E3

3 238 3, 238 D

224 222 222, 224 D

47 200 47, 200 D

156 250 156, 250, 263, 267 263, 267

E1 S E2 E3

162 – 3, 238 22, 167, 395318 – 222, 224 49, 114, 330– – 47, 200 108, 295, 356– – 156, 250, 263, 267 –

Cuadro 4: Fase 3

2.4.1. Desarrollo

2.5. d. Seleccion Natural

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

2.5.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

2.5.2. Salida final

p1 = {167, 263, 267, 330, 395};

p2 = {22, 49, 108, 114, 224, 238, 295, 356};

p3 = {3, 47, 156, 162, 200, 222, 250, 318}.

2.6. e. Ejercicio de B-trees

Procesar el B-tree de orden tal que, con un elemento –a excepcion de la raız– hace underflow perocon 2 no, resultante de ingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

222, 224†, 250†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

Enrique P. Calot Algoritmos y Programacion II

Page 11: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Ejercicio de B-trees 9

E1 E2 E3 S

D D D D

D D D D

D D D D

D 263 267 263, 267167 395 22 22, 167, 395330 49 114 49, 114, 330108 295 356 108, 295, 356

E1 E2 S E3

3 238 3, 238 D

224 222 222, 224 D

47 200 47, 200 D

156 250 156, 250, 263, 267 263, 267

E1 S E2 E3

162 3, 22, 162, 167, 238,395

3, 238 22, 167, 395

318 49, 114, 222, 224,318, 330

222, 224 49, 114, 330

S E1 E2 E3

– 3, 22, 162, 167, 238,395

47, 200 108, 295, 356

– 49, 114, 222, 224,318, 330

156, 250, 263, 267 –

Cuadro 5: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 12: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.6 e. Ejercicio de B-trees

E1 E2 E3 S

D D D D

D D D D

D D D D

D 263 267 263, 267167 395 22 22, 167, 395330 49 114 49, 114, 330108 295 356 108, 295, 356

E1 E2 S E3

3 238 3, 238 D

224 222 222, 224 D

47 200 47, 200 D

156 250 156, 250, 263, 267 263, 267

E1 S E2 E3

162 3, 22, 162, 167, 238,395

3, 238 22, 167, 395

318 49, 114, 222, 224,318, 330

222, 224 49, 114, 330

S E1 E2 E3

3, 22, 47, 108, 162,167, 200, 238, 295,356, 395

3, 22, 162, 167, 238,395

47, 200 108, 295, 356

E3 E1 E2 S

3, 22, 47, 108, 162,167, 200, 238, 295,356, 395

49, 114, 222, 224,318, 330

156, 250, 263, 267 –

Cuadro 6: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 13: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Ejercicio de B-trees 11

E1 E2 E3 S

D D D D

D D D D

D D D D

D 263 267 263, 267167 395 22 22, 167, 395330 49 114 49, 114, 330108 295 356 108, 295, 356

E1 E2 S E3

3 238 3, 238 D

224 222 222, 224 D

47 200 47, 200 D

156 250 156, 250, 263, 267 263, 267

E1 S E2 E3

162 3, 22, 162, 167, 238,395

3, 238 22, 167, 395

318 49, 114, 222, 224,318, 330

222, 224 49, 114, 330

S E1 E2 E3

3, 22, 47, 108, 162,167, 200, 238, 295,356, 395

3, 22, 162, 167, 238,395

47, 200 108, 295, 356

E3 E1 E2 S

3, 22, 47, 108, 162,167, 200, 238, 295,356, 395

49, 114, 222, 224,318, 330

156, 250, 263, 267 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E1 E2 E3

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 7: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 14: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.6 e. Ejercicio de B-trees

Paso 0 Paso 1 Paso 2 Paso 3263 330 200 003267 200 003 022167 250 108 047395 022 114 049022 222 318 108330 162 022 114049 263 222 156114 003 224 162108 114 330 167295 224 238 200356 395 047 222003 295 049 224238 356 250 238224 156 356 250222 267 156 263047 167 162 267200 047 263 295156 108 267 318250 238 167 330162 318 395 356318 049 295 395

Cuadro 8: Radix Sort

Paso 1 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318

Paso 2 222 162 167 250 22 156 49 114 108 200 47 3 238 224 263 356 295 330 395 267 318

Paso 3 47 162 167 3 22 156 49 114 108 200 222 250 238 224 267 295 330 318 356 395

Final 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395

Cuadro 9: Implementacion del Quick Sort

Enrique P. Calot Algoritmos y Programacion II

Page 15: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Ejercicio de B-trees 13

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra– – – – – – – – Nada 263

263 – – – – – – – Nada 267263 267 – – – – – – Nada 167263 267 167 – – – – – Nada 395263 267 167 395 – – – – 167 22263 267 – 395 22 – – – Nada 330263 267 330 395 22 – – – 263 49– 267 330 395 22 49 – – Nada 114– 267 330 395 22 49 114 – Nada 108– 267 330 395 22 49 114 108 267 Nada– – 330 395 22 49 114 108 330 Nada– – – 395 22 49 114 108 395 Nada

22 49 114 108 – – – –Nueva particion! Se cierra la particion p1 = {167, 263, 267, 330, 395}

22 295295 49 114 108 – – – – 49 356295 356 114 108 – – – – 108 3295 356 114 – 3 – – – Nada 238295 356 114 238 3 – – – 114 224295 356 224 238 3 – – – 224 222295 356 – 238 3 222 – – Nada 47295 356 – 238 3 222 47 – Nada 200295 356 – 238 3 222 47 200 238 Nada295 356 – – 3 222 47 200 295 Nada– 356 – – 3 222 47 200 356 Nada3 222 47 200 – – – –

Nueva particion! Se cierra la particion p2 = {22, 49, 108, 114, 224, 238, 295, 356}3 156

156 222 47 200 – – – – 47 250156 222 250 200 – – – – 156 162162 222 250 200 – – – – 162 318318 222 250 200 – – – – 200 Nada318 222 250 – – – – – 222 Nada318 – 250 – – – – – 250 Nada318 – – – – – – – 318 NadaFinaliza la ultima particion en p3 = {3, 47, 156, 162, 200, 222, 250, 318}

Cuadro 10: Algoritmo de seleccion de natural

Algoritmos y Programacion II Facultad de Ingenierıa

Page 16: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 2.6 e. Ejercicio de B-trees

2.6.1. Insercion

•263•

×22×167× ×267×395×

Figura 1: Insercion de 5 elementos: 263, 267, 167, 395, 22

•263•

×22×49×114×167× ×267×330×395×

Figura 2: Insercion de 3 elementos: 330, 49, 114

•108•263•

×22×49× ×114×167× ×267×330×395×

Figura 3: Insercion de 1 elemento: 108

Enrique P. Calot Algoritmos y Programacion II

Page 17: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Ejercicio de B-trees 15

•108•263•330•

×22×49× ×114×167× ×267×295× ×356×395×

Figura 4: Insercion de 2 elementos: 295, 356

•108•222•263•330•

×3×22×47×49× ×114×167× ×224×238× ×267×295× ×356×395×

Figura 5: Insercion de 5 elementos: 3, 238, 224, 222, 47

•108•222•263•330•

×3×22×47×49× ×114×156×167×200× ×224×238× ×267×295× ×356×395×

Figura 6: Insercion de 2 elementos: 200, 156

•222•

•108•162• •263•330•

×3×22×47×49× ×114×156× ×167×200× ×224×238×250× ×267×295×318× ×356×395×

Figura 7: Insercion de 3 elementos: 250, 162, 318

Algoritmos y Programacion II Facultad de Ingenierıa

Page 18: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3 Resolucion explayada

2.6.2. Eliminacion

•108•162•263•330•

×3×22×47×49× ×114×156× ×167×200×238×250× ×267×295×318× ×356×395×

Figura 8: Eliminacion de 2 elementos: 222, 224

•108•162•263•330•

×3×22×47×49× ×114×156× ×167×200×238× ×267×295×318× ×356×395×

Figura 9: Eliminacion de 1 elemento: 250

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

3.2. Quick Sort completo

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

3.2.1. Desarrollo

3.3. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

Enrique P. Calot Algoritmos y Programacion II

Page 19: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 17

Paso 0 Paso 1 Paso 2 Paso 3263 049 395 395267 108 295 356167 238 267 330395 318 167 318022 267 263 295330 167 162 267049 047 356 263114 356 156 250108 156 250 238295 395 049 224356 295 047 222003 114 238 200238 224 330 167224 263 224 162222 003 022 156047 022 222 114200 222 318 108156 162 114 049250 330 108 047162 200 003 022318 250 200 003

Cuadro 11: Radix Sort

Paso 1 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318

Paso 2 222 162 167 250 22 156 49 114 108 200 47 3 238 224 263 356 295 330 395 267 318

Paso 3 47 162 167 3 22 156 49 114 108 200 222 250 238 224 267 295 330 318 356 395

Paso 4 3 22 47 167 162 156 49 114 108 200 224 238 250 267 295 330 318

Paso 5 3 22 108 162 156 49 114 167 200 224 238 295 330 318

Paso 6 49 108 156 162 114 318 330

Final 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395

Cuadro 12: Implementacion del Quick Sort

Algoritmos y Programacion II Facultad de Ingenierıa

Page 20: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort

263

267 167

395 22 330 49

114 108 295 356 3 238 224 222

47 200 156 250 162 318

Vector:

263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318

Figura 10: Arbol inicial y su vector asociado

Enrique P. Calot Algoritmos y Programacion II

Page 21: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 19

263

267 167

395 22 330 49

114 108 295 356 3 238 224 222

47 200 156 250 162 318

Vector:

263 267 167 395 22 330 49 114 108 295 356

3 238 224 222 47 200 156 250 162 318

(a) Heapfy paso 0

263

267 167

395 22 330 49

200 250 318 356 3 238 224 222

47 114 156 108 162 295

Vector:

263 267 167 395 22 330 49 200 250 318 356

3 238 224 222 47 114 156 108 162 295

(b) Heapfy paso 1

263

267 167

395 356 330 224

200 250 318 22 3 238 49 222

47 114 156 108 162 295

Vector:

263 267 167 395 356 330 224 200 250 318 22

3 238 49 222 47 114 156 108 162 295

(c) Heapfy paso 2

263

395 330

267 356 238 224

200 250 318 22 3 167 49 222

47 114 156 108 162 295

Vector:

263 395 330 267 356 238 224 200 250 318 22

3 167 49 222 47 114 156 108 162 295

(d) Heapfy paso 3

395

356 330

267 318 238 224

200 250 295 22 3 167 49 222

47 114 156 108 162 263

Vector:

395 356 330 267 318 238 224 200 250 295 22

3 167 49 222 47 114 156 108 162 263

(e) Heapfy paso 4

Figura 11: Proceso de Heapfy

Algoritmos y Programacion II Facultad de Ingenierıa

Page 22: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort

263

356 330

267 318 238 224

200 250 295 22 3 167 49 222

47 114 156 108 162 395

Vector:

263 356 330 267 318 238 224 200 250 295 22

3 167 49 222 47 114 156 108 162 395

(a) Intercambio y congelamiento

356

318 330

267 295 238 224

200 250 263 22 3 167 49 222

47 114 156 108 162 395

Vector:

356 318 330 267 295 238 224 200 250 263 22

3 167 49 222 47 114 156 108 162 395

(b) Swapdown

Figura 12: Paso 1

162

318 330

267 295 238 224

200 250 263 22 3 167 49 222

47 114 156 108 356 395

Vector:

162 318 330 267 295 238 224 200 250 263 22

3 167 49 222 47 114 156 108 356 395

(a) Intercambio y congelamiento

330

318 238

267 295 167 224

200 250 263 22 3 162 49 222

47 114 156 108 356 395

Vector:

330 318 238 267 295 167 224 200 250 263 22

3 162 49 222 47 114 156 108 356 395

(b) Swapdown

Figura 13: Paso 2

Enrique P. Calot Algoritmos y Programacion II

Page 23: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 21

108

318 238

267 295 167 224

200 250 263 22 3 162 49 222

47 114 156 330 356 395

Vector:

108 318 238 267 295 167 224 200 250 263 22

3 162 49 222 47 114 156 330 356 395

(a) Intercambio y congelamiento

318

295 238

267 263 167 224

200 250 108 22 3 162 49 222

47 114 156 330 356 395

Vector:

318 295 238 267 263 167 224 200 250 108 22

3 162 49 222 47 114 156 330 356 395

(b) Swapdown

Figura 14: Paso 3

156

295 238

267 263 167 224

200 250 108 22 3 162 49 222

47 114 318 330 356 395

Vector:

156 295 238 267 263 167 224 200 250 108 22

3 162 49 222 47 114 318 330 356 395

(a) Intercambio y congelamiento

295

267 238

250 263 167 224

200 156 108 22 3 162 49 222

47 114 318 330 356 395

Vector:

295 267 238 250 263 167 224 200 156 108 22

3 162 49 222 47 114 318 330 356 395

(b) Swapdown

Figura 15: Paso 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 24: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort

114

267 238

250 263 167 224

200 156 108 22 3 162 49 222

47 295 318 330 356 395

Vector:

114 267 238 250 263 167 224 200 156 108 22

3 162 49 222 47 295 318 330 356 395

(a) Intercambio y congelamiento

267

263 238

250 114 167 224

200 156 108 22 3 162 49 222

47 295 318 330 356 395

Vector:

267 263 238 250 114 167 224 200 156 108 22

3 162 49 222 47 295 318 330 356 395

(b) Swapdown

Figura 16: Paso 5

47

263 238

250 114 167 224

200 156 108 22 3 162 49 222

267 295 318 330 356 395

Vector:

47 263 238 250 114 167 224 200 156 108 22

3 162 49 222 267 295 318 330 356 395

(a) Intercambio y congelamiento

263

250 238

200 114 167 224

47 156 108 22 3 162 49 222

267 295 318 330 356 395

Vector:

263 250 238 200 114 167 224 47 156 108 22

3 162 49 222 267 295 318 330 356 395

(b) Swapdown

Figura 17: Paso 6

Enrique P. Calot Algoritmos y Programacion II

Page 25: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 23

222

250 238

200 114 167 224

47 156 108 22 3 162 49 263

267 295 318 330 356 395

Vector:

222 250 238 200 114 167 224 47 156 108 22

3 162 49 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

250

222 238

200 114 167 224

47 156 108 22 3 162 49 263

267 295 318 330 356 395

Vector:

250 222 238 200 114 167 224 47 156 108 22

3 162 49 263 267 295 318 330 356 395

(b) Swapdown

Figura 18: Paso 7

49

222 238

200 114 167 224

47 156 108 22 3 162 250 263

267 295 318 330 356 395

Vector:

49 222 238 200 114 167 224 47 156 108 22

3 162 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

238

222 224

200 114 167 49

47 156 108 22 3 162 250 263

267 295 318 330 356 395

Vector:

238 222 224 200 114 167 49 47 156 108 22

3 162 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 19: Paso 8

Algoritmos y Programacion II Facultad de Ingenierıa

Page 26: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort

162

222 224

200 114 167 49

47 156 108 22 3 238 250 263

267 295 318 330 356 395

Vector:

162 222 224 200 114 167 49 47 156 108 22

3 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

224

222 167

200 114 162 49

47 156 108 22 3 238 250 263

267 295 318 330 356 395

Vector:

224 222 167 200 114 162 49 47 156 108 22

3 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 20: Paso 9

3

222 167

200 114 162 49

47 156 108 22 224 238 250 263

267 295 318 330 356 395

Vector:

3 222 167 200 114 162 49 47 156 108 22

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

222

200 167

156 114 162 49

47 3 108 22 224 238 250 263

267 295 318 330 356 395

Vector:

222 200 167 156 114 162 49 47 3 108 22

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 21: Paso 10

Enrique P. Calot Algoritmos y Programacion II

Page 27: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 25

22

200 167

156 114 162 49

47 3 108 222 224 238 250 263

267 295 318 330 356 395

Vector:

22 200 167 156 114 162 49 47 3 108 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

200

156 167

47 114 162 49

22 3 108 222 224 238 250 263

267 295 318 330 356 395

Vector:

200 156 167 47 114 162 49 22 3 108 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 22: Paso 11

108

156 167

47 114 162 49

22 3 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

108 156 167 47 114 162 49 22 3 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

167

156 162

47 114 108 49

22 3 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

167 156 162 47 114 108 49 22 3 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 23: Paso 12

Algoritmos y Programacion II Facultad de Ingenierıa

Page 28: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort

3

156 162

47 114 108 49

22 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

3 156 162 47 114 108 49 22 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

162

156 108

47 114 3 49

22 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

162 156 108 47 114 3 49 22 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 24: Paso 13

22

156 108

47 114 3 49

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

22 156 108 47 114 3 49 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

156

114 108

47 22 3 49

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

156 114 108 47 22 3 49 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 25: Paso 14

Enrique P. Calot Algoritmos y Programacion II

Page 29: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 27

49

114 108

47 22 3 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

49 114 108 47 22 3 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

114

49 108

47 22 3 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

114 49 108 47 22 3 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 26: Paso 15

3

49 108

47 22 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

3 49 108 47 22 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

108

49 3

47 22 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

108 49 3 47 22 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 27: Paso 16

Algoritmos y Programacion II Facultad de Ingenierıa

Page 30: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort

22

49 3

47 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

22 49 3 47 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

49

47 3

22 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

49 47 3 22 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 28: Paso 17

22

47 3

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

22 47 3 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

47

22 3

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

47 22 3 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 29: Paso 18

Enrique P. Calot Algoritmos y Programacion II

Page 31: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort 29

3

22 47

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

3 22 47 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

22

3 47

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

22 3 47 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 30: Paso 19

3

22 47

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

3 22 47 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(a) Intercambio y congelamiento

3

22 47

49 108 114 156

162 167 200 222 224 238 250 263

267 295 318 330 356 395

Vector:

3 22 47 49 108 114 156 162 167 200 222

224 238 250 263 267 295 318 330 356 395

(b) Swapdown

Figura 31: Paso 20

Algoritmos y Programacion II Facultad de Ingenierıa

Page 32: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.4 Heap Sort descendente

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

3.4.1. Arbol inicial

263

267 167

395 22 330 49

114 108 295 356 3 238 224 222

47 200 156 250 162 318

Vector:

263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318

Figura 32: Arbol inicial y su vector asociado

Enrique P. Calot Algoritmos y Programacion II

Page 33: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

263

267 167

395 22 330 49

114 108 295 356 3 238 224 222

47 200 156 250 162 318

Vector:

263 267 167 395 22 330 49 114 108 295 356

3 238 224 222 47 200 156 250 162 318

(a) Heapfy paso 0

263

267 167

395 22 330 49

47 108 162 356 3 238 224 222

114 200 156 250 295 318

Vector:

263 267 167 395 22 330 49 47 108 162 356

3 238 224 222 114 200 156 250 295 318

(b) Heapfy paso 1

263

267 167

47 22 3 49

114 108 162 356 330 238 224 222

395 200 156 250 295 318

Vector:

263 267 167 47 22 3 49 114 108 162 356

330 238 224 222 395 200 156 250 295 318

(c) Heapfy paso 2

263

22 3

47 162 167 49

114 108 267 356 330 238 224 222

395 200 156 250 295 318

Vector:

263 22 3 47 162 167 49 114 108 267 356

330 238 224 222 395 200 156 250 295 318

(d) Heapfy paso 3

3

22 49

47 162 167 222

114 108 267 356 330 238 224 263

395 200 156 250 295 318

Vector:

3 22 49 47 162 167 222 114 108 267 356

330 238 224 263 395 200 156 250 295 318

(e) Heapfy paso 4

Figura 33: Proceso de Heapfy

Algoritmos y Programacion II Facultad de Ingenierıa

Page 34: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

318

22 49

47 162 167 222

114 108 267 356 330 238 224 263

395 200 156 250 295 3

Vector:

318 22 49 47 162 167 222 114 108 267 356

330 238 224 263 395 200 156 250 295 3

(a) Intercambio y congelamiento

22

47 49

108 162 167 222

114 156 267 356 330 238 224 263

395 200 318 250 295 3

Vector:

22 47 49 108 162 167 222 114 156 267 356

330 238 224 263 395 200 318 250 295 3

(b) Swapdown

Figura 34: Paso 1

295

47 49

108 162 167 222

114 156 267 356 330 238 224 263

395 200 318 250 22 3

Vector:

295 47 49 108 162 167 222 114 156 267 356

330 238 224 263 395 200 318 250 22 3

(a) Intercambio y congelamiento

47

108 49

114 162 167 222

200 156 267 356 330 238 224 263

395 295 318 250 22 3

Vector:

47 108 49 114 162 167 222 200 156 267 356

330 238 224 263 395 295 318 250 22 3

(b) Swapdown

Figura 35: Paso 2

Enrique P. Calot Algoritmos y Programacion II

Page 35: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

250

108 49

114 162 167 222

200 156 267 356 330 238 224 263

395 295 318 47 22 3

Vector:

250 108 49 114 162 167 222 200 156 267 356

330 238 224 263 395 295 318 47 22 3

(a) Intercambio y congelamiento

49

108 167

114 162 238 222

200 156 267 356 330 250 224 263

395 295 318 47 22 3

Vector:

49 108 167 114 162 238 222 200 156 267 356

330 250 224 263 395 295 318 47 22 3

(b) Swapdown

Figura 36: Paso 3

318

108 167

114 162 238 222

200 156 267 356 330 250 224 263

395 295 49 47 22 3

Vector:

318 108 167 114 162 238 222 200 156 267 356

330 250 224 263 395 295 49 47 22 3

(a) Intercambio y congelamiento

108

114 167

156 162 238 222

200 318 267 356 330 250 224 263

395 295 49 47 22 3

Vector:

108 114 167 156 162 238 222 200 318 267 356

330 250 224 263 395 295 49 47 22 3

(b) Swapdown

Figura 37: Paso 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 36: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

295

114 167

156 162 238 222

200 318 267 356 330 250 224 263

395 108 49 47 22 3

Vector:

295 114 167 156 162 238 222 200 318 267 356

330 250 224 263 395 108 49 47 22 3

(a) Intercambio y congelamiento

114

156 167

200 162 238 222

295 318 267 356 330 250 224 263

395 108 49 47 22 3

Vector:

114 156 167 200 162 238 222 295 318 267 356

330 250 224 263 395 108 49 47 22 3

(b) Swapdown

Figura 38: Paso 5

395

156 167

200 162 238 222

295 318 267 356 330 250 224 263

114 108 49 47 22 3

Vector:

395 156 167 200 162 238 222 295 318 267 356

330 250 224 263 114 108 49 47 22 3

(a) Intercambio y congelamiento

156

162 167

200 267 238 222

295 318 395 356 330 250 224 263

114 108 49 47 22 3

Vector:

156 162 167 200 267 238 222 295 318 395 356

330 250 224 263 114 108 49 47 22 3

(b) Swapdown

Figura 39: Paso 6

Enrique P. Calot Algoritmos y Programacion II

Page 37: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

263

162 167

200 267 238 222

295 318 395 356 330 250 224 156

114 108 49 47 22 3

Vector:

263 162 167 200 267 238 222 295 318 395 356

330 250 224 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

162

200 167

263 267 238 222

295 318 395 356 330 250 224 156

114 108 49 47 22 3

Vector:

162 200 167 263 267 238 222 295 318 395 356

330 250 224 156 114 108 49 47 22 3

(b) Swapdown

Figura 40: Paso 7

224

200 167

263 267 238 222

295 318 395 356 330 250 162 156

114 108 49 47 22 3

Vector:

224 200 167 263 267 238 222 295 318 395 356

330 250 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

167

200 222

263 267 238 224

295 318 395 356 330 250 162 156

114 108 49 47 22 3

Vector:

167 200 222 263 267 238 224 295 318 395 356

330 250 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 41: Paso 8

Algoritmos y Programacion II Facultad de Ingenierıa

Page 38: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

250

200 222

263 267 238 224

295 318 395 356 330 167 162 156

114 108 49 47 22 3

Vector:

250 200 222 263 267 238 224 295 318 395 356

330 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

200

250 222

263 267 238 224

295 318 395 356 330 167 162 156

114 108 49 47 22 3

Vector:

200 250 222 263 267 238 224 295 318 395 356

330 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 42: Paso 9

330

250 222

263 267 238 224

295 318 395 356 200 167 162 156

114 108 49 47 22 3

Vector:

330 250 222 263 267 238 224 295 318 395 356

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

222

250 224

263 267 238 330

295 318 395 356 200 167 162 156

114 108 49 47 22 3

Vector:

222 250 224 263 267 238 330 295 318 395 356

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 43: Paso 10

Enrique P. Calot Algoritmos y Programacion II

Page 39: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

356

250 224

263 267 238 330

295 318 395 222 200 167 162 156

114 108 49 47 22 3

Vector:

356 250 224 263 267 238 330 295 318 395 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

224

250 238

263 267 356 330

295 318 395 222 200 167 162 156

114 108 49 47 22 3

Vector:

224 250 238 263 267 356 330 295 318 395 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 44: Paso 11

395

250 238

263 267 356 330

295 318 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 250 238 263 267 356 330 295 318 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

238

250 330

263 267 356 395

295 318 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

238 250 330 263 267 356 395 295 318 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 45: Paso 12

Algoritmos y Programacion II Facultad de Ingenierıa

Page 40: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

318

250 330

263 267 356 395

295 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

318 250 330 263 267 356 395 295 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

250

263 330

295 267 356 395

318 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

250 263 330 295 267 356 395 318 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 46: Paso 13

318

263 330

295 267 356 395

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

318 263 330 295 267 356 395 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

263

267 330

295 318 356 395

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

263 267 330 295 318 356 395 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 47: Paso 14

Enrique P. Calot Algoritmos y Programacion II

Page 41: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

395

267 330

295 318 356 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 267 330 295 318 356 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

267

295 330

395 318 356 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

267 295 330 395 318 356 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 48: Paso 15

356

295 330

395 318 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

356 295 330 395 318 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

295

318 330

395 356 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

295 318 330 395 356 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 49: Paso 16

Algoritmos y Programacion II Facultad de Ingenierıa

Page 42: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

356

318 330

395 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

356 318 330 395 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

318

356 330

395 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

318 356 330 395 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 50: Paso 17

395

356 330

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 356 330 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

330

356 395

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

330 356 395 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 51: Paso 18

Enrique P. Calot Algoritmos y Programacion II

Page 43: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

395

356 330

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 356 330 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

356

395 330

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

356 395 330 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 52: Paso 19

395

356 330

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 356 330 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(a) Intercambio y congelamiento

395

356 330

318 295 267 263

250 238 224 222 200 167 162 156

114 108 49 47 22 3

Vector:

395 356 330 318 295 267 263 250 238 224 222

200 167 162 156 114 108 49 47 22 3

(b) Swapdown

Figura 53: Paso 20

Algoritmos y Programacion II Facultad de Ingenierıa

Page 44: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.5 Merge Polifasico de las salidas por seleccion natural

3.5. Merge Polifasico de las salidas por seleccion natural

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 3 = 1 + 1 + 1 = 3 + 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {22, 167, 263, 267, 395}; p2 = {49, 114, 330}; . . . ; p6 = {156, 200}; p7 = {162, 250, 318}.

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 9 = 4 + 3 + 2 = 7 + 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.7. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {263, 267}; p2 = {167, 395}; . . . ; p10 = {162, 250}; p11 = {318}.

Fases c1 c2 c3

∑3i=1 ci < 3

0 1 0 0 1 Si1 1 1 1 3 No

Cuadro 13: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 45: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico con particiones formadas de 2 elementos 43

E1 E2 E3 S

167, 263, 267, 330,395

22, 49, 108, 114, 224,238, 295, 356

3, 47, 156, 162, 200,222, 250, 318

Cuadro 14: Fase 1

E1 E2 E3 S

167, 263, 267, 330,395

22, 49, 108, 114, 224,238, 295, 356

3, 47, 156, 162, 200,222, 250, 318

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E2 E3 E1

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 15: Fase final

Fases c1 c2 c3

∑3i=1 ci < 7

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 16: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 22, 167, 263, 267, 395 –49, 114, 330 108 295, 356 –3, 47, 222, 224, 238 156, 200 – –162, 250, 318 – – –

Cuadro 17: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 46: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.7 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D 22, 167, 263, 267, 395 22, 167, 263, 267, 39549, 114, 330 108 295, 356 49, 108, 114, 295,

330, 356

E1 E2 S E3

3, 47, 222, 224, 238 156, 200 – 22, 167, 263, 267, 395162, 250, 318 – – 49, 108, 114, 295,

330, 356

Cuadro 18: Fase 2

E1 E2 E3 S

D D 22, 167, 263, 267, 395 22, 167, 263, 267, 39549, 114, 330 108 295, 356 49, 108, 114, 295,

330, 356

E1 E2 S E3

3, 47, 222, 224, 238 156, 200 3, 22, 47, 156, 167,200, 222, 224, 238,263, 267, 395

22, 167, 263, 267, 395

E1 S E2 E3

162, 250, 318 – 3, 22, 47, 156, 167,200, 222, 224, 238,263, 267, 395

49, 108, 114, 295,330, 356

Cuadro 19: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 47: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico con particiones formadas de 2 elementos 45

E1 E2 E3 S

D D 22, 167, 263, 267, 395 22, 167, 263, 267, 39549, 114, 330 108 295, 356 49, 108, 114, 295,

330, 356

E1 E2 S E3

3, 47, 222, 224, 238 156, 200 3, 22, 47, 156, 167,200, 222, 224, 238,263, 267, 395

22, 167, 263, 267, 395

E1 S E2 E3

162, 250, 318 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

3, 22, 47, 156, 167,200, 222, 224, 238,263, 267, 395

49, 108, 114, 295,330, 356

S E1 E2 E3

– 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– –

Cuadro 20: Fase final

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

Fases c1 c2 c3

∑3i=1 ci < 11

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 21: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 48: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.7 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D –D D D –263, 267 167, 395 22, 330 –49, 114 108, 295 3, 356 –224, 238 47, 222 – –156, 200 162, 250 – –318 – – –

Cuadro 22: Fase 1

E1 E2 E3 S

D D D D

D D D D

263, 267 167, 395 22, 330 22, 167, 263, 267,330, 395

49, 114 108, 295 3, 356 3, 49, 108, 114, 295,356

E1 E2 S E3

224, 238 47, 222 – D

156, 200 162, 250 – D

318 – – 22, 167, 263, 267,330, 395

– – – 3, 49, 108, 114, 295,356

Cuadro 23: Fase 2

E1 E2 E3 S

D D D D

D D D D

263, 267 167, 395 22, 330 22, 167, 263, 267,330, 395

49, 114 108, 295 3, 356 3, 49, 108, 114, 295,356

E1 E2 S E3

224, 238 47, 222 47, 222, 224, 238 D

156, 200 162, 250 156, 162, 200, 250 D

E1 S E2 E3

318 – 47, 222, 224, 238 22, 167, 263, 267,330, 395

– – 156, 162, 200, 250 3, 49, 108, 114, 295,356

Cuadro 24: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 49: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 47

E1 E2 E3 S

D D D D

D D D D

263, 267 167, 395 22, 330 22, 167, 263, 267,330, 395

49, 114 108, 295 3, 356 3, 49, 108, 114, 295,356

E1 E2 S E3

224, 238 47, 222 47, 222, 224, 238 D

156, 200 162, 250 156, 162, 200, 250 D

E1 S E2 E3

318 22, 47, 167, 222, 224,238, 263, 267, 318,330, 395

47, 222, 224, 238 22, 167, 263, 267,330, 395

S E1 E2 E3

– 22, 47, 167, 222, 224,238, 263, 267, 318,330, 395

156, 162, 200, 250 3, 49, 108, 114, 295,356

Cuadro 25: Fase 4

3.8. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {167, 263, 267}; p2 = {22, 330, 395}; . . . ; p6 = {47, 156, 200}; p7 = {162, 250, 318}.

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 9 = 4 + 3 + 2 = 7 + 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {167, 263, 267, 395}; p2 = {22, 49, 114, 330}; p3 = {3, 108, 295, 356}; p4 ={47, 222, 224, 238}; p5 = {156, 162, 200, 250}; p6 = {318}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 50: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.9 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

D D D D

263, 267 167, 395 22, 330 22, 167, 263, 267,330, 395

49, 114 108, 295 3, 356 3, 49, 108, 114, 295,356

E1 E2 S E3

224, 238 47, 222 47, 222, 224, 238 D

156, 200 162, 250 156, 162, 200, 250 D

E1 S E2 E3

318 22, 47, 167, 222, 224,238, 263, 267, 318,330, 395

47, 222, 224, 238 22, 167, 263, 267,330, 395

S E1 E2 E3

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

22, 47, 167, 222, 224,238, 263, 267, 318,330, 395

156, 162, 200, 250 3, 49, 108, 114, 295,356

E1 S E2 E3

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– – –

Cuadro 26: Fase final

Fases c1 c2 c3

∑3i=1 ci < 7

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 27: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 167, 263, 267 –22, 330, 395 49, 108, 114 3, 295, 356 –222, 224, 238 47, 156, 200 – –162, 250, 318 – – –

Cuadro 28: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 51: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 4 elementos 49

E1 E2 E3 S

D D 167, 263, 267 167, 263, 26722, 330, 395 49, 108, 114 3, 295, 356 3, 22, 49, 108, 114,

295, 330, 356, 395

E1 E2 S E3

222, 224, 238 47, 156, 200 – 167, 263, 267162, 250, 318 – – 3, 22, 49, 108, 114,

295, 330, 356, 395

Cuadro 29: Fase 2

E1 E2 E3 S

D D 167, 263, 267 167, 263, 26722, 330, 395 49, 108, 114 3, 295, 356 3, 22, 49, 108, 114,

295, 330, 356, 395

E1 E2 S E3

222, 224, 238 47, 156, 200 47, 156, 167, 200,222, 224, 238, 263,267

167, 263, 267

E1 S E2 E3

162, 250, 318 – 47, 156, 167, 200,222, 224, 238, 263,267

3, 22, 49, 108, 114,295, 330, 356, 395

Cuadro 30: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 52: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.10 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 167, 263, 267 167, 263, 26722, 330, 395 49, 108, 114 3, 295, 356 3, 22, 49, 108, 114,

295, 330, 356, 395

E1 E2 S E3

222, 224, 238 47, 156, 200 47, 156, 167, 200,222, 224, 238, 263,267

167, 263, 267

E1 S E2 E3

162, 250, 318 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

47, 156, 167, 200,222, 224, 238, 263,267

3, 22, 49, 108, 114,295, 330, 356, 395

S E1 E2 E3

– 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– –

Cuadro 31: Fase final

Fases c1 c2 c3

∑3i=1 ci < 6

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 32: Calculo de la distribucion de columnas y dummies

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 9 = 4 + 3 + 2 = 6 + 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.10. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

Enrique P. Calot Algoritmos y Programacion II

Page 53: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Seleccion de reemplazo con buffer de tamano 2 51

E1 E2 E3 S

D D D –167, 263, 267, 395 22, 49, 114, 330 3, 108, 295, 356 –47, 222, 224, 238 156, 162, 200, 250 – –318 – – –

Cuadro 33: Fase 1

E1 E2 E3 S

D D D D

167, 263, 267, 395 22, 49, 114, 330 3, 108, 295, 356 3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

E1 E2 S E3

47, 222, 224, 238 156, 162, 200, 250 – D

318 – – 3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

Cuadro 34: Fase 2

E1 E2 E3 S

D D D D

167, 263, 267, 395 22, 49, 114, 330 3, 108, 295, 356 3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

E1 E2 S E3

47, 222, 224, 238 156, 162, 200, 250 47, 156, 162, 200,222, 224, 238, 250

D

E1 S E2 E3

318 – 47, 156, 162, 200,222, 224, 238, 250

3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

Cuadro 35: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 54: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.11 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

E1 E2 E3 S

D D D D

167, 263, 267, 395 22, 49, 114, 330 3, 108, 295, 356 3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

E1 E2 S E3

47, 222, 224, 238 156, 162, 200, 250 47, 156, 162, 200,222, 224, 238, 250

D

E1 S E2 E3

318 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

47, 156, 162, 200,222, 224, 238, 250

3, 22, 49, 108, 114,167, 263, 267, 295,330, 356, 395

S E1 E2 E3

– 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– –

Cuadro 36: Fase final

3.10.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

3.10.2. Salida final

p1 = {263, 267, 395};

p2 = {22, 167, 330};

p3 = {49, 108, 114, 295, 356};

p4 = {3, 224, 238};

p5 = {47, 200, 222, 250};

p6 = {156, 162, 318}.

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 55: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 53

b1 b2 Sale Entra– – Nada 263

263 – Nada 267263 267 263 167167 267 267 395167 395 395 22167 22

Nueva particion! Se cierra la particion p1 = {263, 267, 395}22 330

167 330 167 4949 330 330 11449 114

Nueva particion! Se cierra la particion p2 = {22, 167, 330}49 108

108 114 108 295295 114 114 356295 356 295 33 356 356 2383 238

Nueva particion! Se cierra la particion p3 = {49, 108, 114, 295, 356}3 224

224 238 224 222222 238 238 47222 47

Nueva particion! Se cierra la particion p4 = {3, 224, 238}47 200

222 200 200 156222 156 222 250250 156 250 162162 156

Nueva particion! Se cierra la particion p5 = {47, 200, 222, 250}156 318

162 318 162 Nada– 318 318 Nada

Finaliza la ultima particion en p6 = {156, 162, 318}

Cuadro 37: Algoritmo de seleccion de reemplazo

Algoritmos y Programacion II Facultad de Ingenierıa

Page 56: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.12 Seleccion Natural con buffers de tamano 2

Fases c1 c2 c3

∑3i=1 ci < 6

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 38: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 –3, 224, 238 47, 200, 222, 250 – –156, 162, 318 – – –

Cuadro 39: Fase 1

3.11.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.11.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 9 = 4 + 3 + 2 = 6 + 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.12. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 – D

156, 162, 318 – – 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

Cuadro 40: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 57: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Seleccion Natural con buffers de tamano 2 55

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 3, 47, 200, 222, 224,238, 250

D

E1 S E2 E3

156, 162, 318 – 3, 47, 200, 222, 224,238, 250

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

Cuadro 41: Fase 3

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 3, 47, 200, 222, 224,238, 250

D

E1 S E2 E3

156, 162, 318 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

3, 47, 200, 222, 224,238, 250

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

S E1 E2 E3

– 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– –

Cuadro 42: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 58: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.13 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

3.12.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

3.12.2. Salida final

p1 = {263, 267, 395};

p2 = {22, 167, 330};

p3 = {49, 108, 114, 295, 356};

p4 = {3, 224, 238};

p5 = {47, 200, 222, 250};

p6 = {156, 162, 318}.

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.13.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.13.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 9 = 4 + 3 + 2 = 6 + 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.14. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

3.14.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

3.14.2. Salida final

p1 = {167, 263, 267, 330, 395};

p2 = {22, 49, 108, 114, 295, 356};

p3 = {3, 222, 224, 238};

p4 = {47, 156, 162, 200, 250, 318}.

Enrique P. Calot Algoritmos y Programacion II

Page 59: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Seleccion de reemplazo con buffer de tamano 3 57

b1 b2 a1 a2 Sale Entra– – – – Nada 263

263 – – – Nada 267263 267 – – 263 167– 267 167 – Nada 395

395 267 167 – 267 22395 – 167 22 395 Nada167 22 – –Nueva particion! Se cierra la particion p1 = {263, 267, 395}

22 330167 330 – – 167 49– 330 49 – Nada 114– 330 49 114 330 Nada

49 114 – –Nueva particion! Se cierra la particion p2 = {22, 167, 330}

49 108108 114 – – 108 295295 114 – – 114 356295 356 – – 295 3– 356 3 – Nada 238– 356 3 238 356 Nada3 238 – –

Nueva particion! Se cierra la particion p3 = {49, 108, 114, 295, 356}3 224

224 238 – – 224 222– 238 222 – Nada 47– 238 222 47 238 Nada

222 47 – –Nueva particion! Se cierra la particion p4 = {3, 224, 238}

47 200222 200 – – 200 156222 – 156 – Nada 250222 250 156 – 222 162– 250 156 162 250 Nada

156 162 – –Nueva particion! Se cierra la particion p5 = {47, 200, 222, 250}

156 318318 162 – – 162 Nada318 – – – 318 NadaFinaliza la ultima particion en p6 = {156, 162, 318}

Cuadro 43: Algoritmo de seleccion de natural

Fases c1 c2 c3

∑3i=1 ci < 6

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 44: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 60: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.14 Seleccion de reemplazo con buffer de tamano 3

E1 E2 E3 S

D D D –263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 –3, 224, 238 47, 200, 222, 250 – –156, 162, 318 – – –

Cuadro 45: Fase 1

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 – D

156, 162, 318 – – 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

Cuadro 46: Fase 2

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 3, 47, 200, 222, 224,238, 250

D

E1 S E2 E3

156, 162, 318 – 3, 47, 200, 222, 224,238, 250

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

Cuadro 47: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 61: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.15 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 59

E1 E2 E3 S

D D D D

263, 267, 395 22, 167, 330 49, 108, 114, 295, 356 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 224, 238 47, 200, 222, 250 3, 47, 200, 222, 224,238, 250

D

E1 S E2 E3

156, 162, 318 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

3, 47, 200, 222, 224,238, 250

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

S E1 E2 E3

– 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

– –

Cuadro 48: Fase final

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.15.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.15.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 5 = 2 + 2 + 1 = 4 + 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.16. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 62: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.16 Seleccion Natural con buffers de tamano 3

b1 b2 b3 Sale Entra– – – Nada 263

263 – – Nada 267263 267 – Nada 167263 267 167 167 395263 267 395 263 2222 267 395 267 33022 330 395 330 4922 49 395 395 11422 49 114

Nueva particion! Se cierra la particion p1 = {167, 263, 267, 330, 395}22 108

108 49 114 49 295108 295 114 108 356356 295 114 114 3356 295 3 295 238356 238 3 356 224224 238 3

Nueva particion! Se cierra la particion p2 = {22, 49, 108, 114, 295, 356}3 222

224 238 222 222 47224 238 47 224 200200 238 47 238 156200 156 47

Nueva particion! Se cierra la particion p3 = {3, 222, 224, 238}47 250

200 156 250 156 162200 162 250 162 318200 318 250 200 Nada– 318 250 250 Nada– 318 – 318 Nada

Finaliza la ultima particion en p4 = {47, 156, 162, 200, 250, 318}

Cuadro 49: Algoritmo de seleccion de reemplazo

Fases c1 c2 c3

∑3i=1 ci < 4

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 50: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 295,356

3, 222, 224, 238 47, 156, 162, 200,250, 318

– –

Cuadro 51: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 63: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.16 Seleccion Natural con buffers de tamano 3 61

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 295,356

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 222, 224, 238 47, 156, 162, 200,250, 318

– 22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

Cuadro 52: Fase 2

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 295,356

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

E1 E2 S E3

3, 222, 224, 238 47, 156, 162, 200,250, 318

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

22, 49, 108, 114, 167,263, 267, 295, 330,356, 395

S E2 E1 E3

– – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 53: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 64: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.16 Seleccion Natural con buffers de tamano 3

b1 b2 b3 a1 a2 a3 Sale Entra– – – – – – Nada 263

263 – – – – – Nada 267263 267 – – – – Nada 167263 267 167 – – – 167 395263 267 395 – – – 263 22– 267 395 22 – – Nada 330

330 267 395 22 – – 267 49330 – 395 22 49 – Nada 114330 – 395 22 49 114 330 Nada– – 395 22 49 114 395 Nada

22 49 114 – – –Nueva particion! Se cierra la particion p1 = {167, 263, 267, 330, 395}

22 108108 49 114 – – – 49 295108 295 114 – – – 108 356356 295 114 – – – 114 3356 295 – 3 – – Nada 238356 295 238 3 – – 238 224356 295 – 3 224 – Nada 222356 295 – 3 224 222 295 Nada356 – – 3 224 222 356 Nada3 224 222 – – –

Nueva particion! Se cierra la particion p2 = {22, 49, 108, 114, 238, 295, 356}3 47

47 224 222 – – – 47 200200 224 222 – – – 200 156– 224 222 156 – – Nada 250

250 224 222 156 – – 222 162250 224 – 156 162 – Nada 318250 224 318 156 162 – 224 Nada250 – 318 156 162 – 250 Nada– – 318 156 162 – 318 Nada

156 162 – – – –Nueva particion! Se cierra la particion p3 = {3, 47, 200, 222, 224, 250, 318}

156 Nada– 162 – – – – 162 Nada

Finaliza la ultima particion en p4 = {156, 162}

Cuadro 54: Algoritmo de seleccion de natural

3.16.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

3.16.2. Salida final

p1 = {167, 263, 267, 330, 395};

p2 = {22, 49, 108, 114, 238, 295, 356};

p3 = {3, 47, 200, 222, 224, 250, 318};

p4 = {156, 162}.

Enrique P. Calot Algoritmos y Programacion II

Page 65: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 63

Fases c1 c2 c3

∑3i=1 ci < 4

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

3, 47, 200, 222, 224,250, 318

156, 162 – –

Cuadro 56: Fase 1

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.17.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.17.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 5 = 2 + 2 + 1 = 4 + 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

E1 E2 S E3

3, 47, 200, 222, 224,250, 318

156, 162 – 22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

Cuadro 57: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 66: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.18 Seleccion de reemplazo con buffer de tamano 4

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

E1 E2 S E3

3, 47, 200, 222, 224,250, 318

156, 162 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

S E2 E1 E3

– – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 58: Fase final

3.18. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

3.18.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

3.18.2. Salida final

p1 = {167, 263, 267, 330, 395};

p2 = {22, 49, 108, 114, 238, 295, 356};

p3 = {3, 47, 156, 200, 222, 224, 250, 318};

p4 = {162}.

3.19. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.19.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 67: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 65

b1 b2 b3 b4 Sale Entra– – – – Nada 263

263 – – – Nada 267263 267 – – Nada 167263 267 167 – Nada 395263 267 167 395 167 22263 267 22 395 263 330330 267 22 395 267 49330 49 22 395 330 114114 49 22 395 395 108114 49 22 108

Nueva particion! Se cierra la particion p1 = {167, 263, 267, 330, 395}22 295

114 49 295 108 49 356114 356 295 108 108 3114 356 295 3 114 238238 356 295 3 238 224224 356 295 3 295 222224 356 222 3 356 47224 47 222 3

Nueva particion! Se cierra la particion p2 ={22, 49, 108, 114, 238, 295, 356}

3 200224 47 222 200 47 156224 156 222 200 156 250224 250 222 200 200 162224 250 222 162 222 318224 250 318 162 224 Nada– 250 318 162 250 Nada– – 318 162 318 Nada– – – 162

Nueva particion! Se cierra la particion p3 ={3, 47, 156, 200, 222, 224, 250, 318}

162 NadaFinaliza la ultima particion en p4 = {162}

Cuadro 59: Algoritmo de seleccion de reemplazo

Fases c1 c2 c3

∑3i=1 ci < 4

0 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 60: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 68: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.20 Seleccion de reemplazo con buffer de tamano 5

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

3, 47, 156, 200, 222,224, 250, 318

162 – –

Cuadro 61: Fase 1

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

E1 E2 S E3

3, 47, 156, 200, 222,224, 250, 318

162 – 22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

Cuadro 62: Fase 2

3.19.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 5 = 2 + 2 + 1 = 4 + 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.20. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.20.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

3.20.2. Salida final

p1 = {22, 167, 263, 267, 330, 395};

p2 = {49, 108, 114, 224, 238, 295, 356};

p3 = {3, 47, 156, 162, 200, 222, 250, 318}.

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 69: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Seleccion Natural con buffers de tamano 5 67

E1 E2 E3 S

D 167, 263, 267, 330,395

22, 49, 108, 114, 238,295, 356

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

E1 E2 S E3

3, 47, 156, 200, 222,224, 250, 318

162 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

22, 49, 108, 114, 167,238, 263, 267, 295,330, 356, 395

S E2 E1 E3

– – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 63: Fase final

3.21.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.21.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 3 = 1 + 1 + 1 = 3 + 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.22. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.22.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

3.22.2. Salida final

p1 = {22, 167, 263, 267, 295, 330, 356, 395};

p2 = {3, 49, 108, 114, 156, 200, 222, 224, 238, 250, 318};

p3 = {47, 162}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 70: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.22 Seleccion Natural con buffers de tamano 5

b1 b2 b3 b4 b5 Sale Entra– – – – – Nada 263

263 – – – – Nada 267263 267 – – – Nada 167263 267 167 – – Nada 395263 267 167 395 – Nada 22263 267 167 395 22 22 330263 267 167 395 330 167 49263 267 49 395 330 263 114114 267 49 395 330 267 108114 108 49 395 330 330 295114 108 49 395 295 395 356114 108 49 356 295

Nueva particion! Se cierra la particion p1 ={22, 167, 263, 267, 330, 395}

49 3114 108 3 356 295 108 238114 238 3 356 295 114 224224 238 3 356 295 224 222222 238 3 356 295 238 47222 47 3 356 295 295 200222 47 3 356 200 356 156222 47 3 156 200

Nueva particion! Se cierra la particion p2 ={49, 108, 114, 224, 238, 295, 356}

3 250222 47 250 156 200 47 162222 162 250 156 200 156 318222 162 250 318 200 162 Nada222 – 250 318 200 200 Nada222 – 250 318 – 222 Nada– – 250 318 – 250 Nada– – – 318 – 318 Nada

Finaliza la ultima particion en p3 = {3, 47, 156, 162, 200, 222, 250, 318}

Cuadro 64: Algoritmo de seleccion de reemplazo

Fases c1 c2 c3

∑3i=1 ci < 3

0 1 0 0 1 Si1 1 1 1 3 No

Cuadro 65: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 167, 263, 267,330, 395

49, 108, 114, 224,238, 295, 356

3, 47, 156, 162, 200,222, 250, 318

Cuadro 66: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 71: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Seleccion Natural con buffers de tamano 5 69

E1 E2 E3 S

22, 167, 263, 267,330, 395

49, 108, 114, 224,238, 295, 356

3, 47, 156, 162, 200,222, 250, 318

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E2 E3 E1

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 67: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra– – – – – – – – – – Nada 263

263 – – – – – – – – – Nada 267263 267 – – – – – – – – Nada 167263 267 167 – – – – – – – Nada 395263 267 167 395 – – – – – – Nada 22263 267 167 395 22 – – – – – 22 330263 267 167 395 330 – – – – – 167 49263 267 – 395 330 49 – – – – Nada 114263 267 – 395 330 49 114 – – – Nada 108263 267 – 395 330 49 114 108 – – Nada 295263 267 295 395 330 49 114 108 – – 263 356356 267 295 395 330 49 114 108 – – 267 3356 – 295 395 330 49 114 108 3 – Nada 238356 – 295 395 330 49 114 108 3 238 295 Nada356 – – 395 330 49 114 108 3 238 330 Nada356 – – 395 – 49 114 108 3 238 356 Nada– – – 395 – 49 114 108 3 238 395 Nada

49 114 108 3 238 – – – – –Nueva particion! Se cierra la particion p1 = {22, 167, 263, 267, 295, 330, 356, 395}

3 22449 114 108 224 238 – – – – – 49 222222 114 108 224 238 – – – – – 108 47222 114 – 224 238 47 – – – – Nada 200222 114 200 224 238 47 – – – – 114 156222 156 200 224 238 47 – – – – 156 250222 250 200 224 238 47 – – – – 200 162222 250 – 224 238 47 162 – – – Nada 318222 250 318 224 238 47 162 – – – 222 Nada– 250 318 224 238 47 162 – – – 224 Nada– 250 318 – 238 47 162 – – – 238 Nada– 250 318 – – 47 162 – – – 250 Nada– – 318 – – 47 162 – – – 318 Nada

47 162 – – – – – – – –Nueva particion! Se cierra la particion p2 = {3, 49, 108, 114, 156, 200, 222, 224, 238, 250, 318}

47 Nada– 162 – – – – – – – – 162 Nada

Finaliza la ultima particion en p3 = {47, 162}

Cuadro 68: Algoritmo de seleccion de natural

Algoritmos y Programacion II Facultad de Ingenierıa

Page 72: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.23 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3

∑3i=1 ci < 3

0 1 0 0 1 Si1 1 1 1 3 No

Cuadro 69: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 167, 263, 267,295, 330, 356, 395

3, 49, 108, 114, 156,200, 222, 224, 238,250, 318

47, 162 –

Cuadro 70: Fase 1

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.23.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.23.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 3 = 1 + 1 + 1 = 3 + 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.24. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.24.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

3.24.2. Salida final

p1 = {22, 49, 114, 167, 263, 267, 295, 330, 356, 395};

p2 = {3, 47, 108, 156, 162, 200, 222, 224, 238, 250, 318}.

Enrique P. Calot Algoritmos y Programacion II

Page 73: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.24 Seleccion de reemplazo con buffer de tamano 6 71

E1 E2 E3 S

22, 167, 263, 267,295, 330, 356, 395

3, 49, 108, 114, 156,200, 222, 224, 238,250, 318

47, 162 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E2 E3 E1

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 71: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra– – – – – – Nada 263

263 – – – – – Nada 267263 267 – – – – Nada 167263 267 167 – – – Nada 395263 267 167 395 – – Nada 22263 267 167 395 22 – Nada 330263 267 167 395 22 330 22 49263 267 167 395 49 330 49 114263 267 167 395 114 330 114 108263 267 167 395 108 330 167 295263 267 295 395 108 330 263 356356 267 295 395 108 330 267 3356 3 295 395 108 330 295 238356 3 238 395 108 330 330 224356 3 238 395 108 224 356 222222 3 238 395 108 224 395 47222 3 238 47 108 224

Nueva particion! Se cierra la particion p1 ={22, 49, 114, 167, 263, 267, 295, 330, 356, 395}

3 200222 200 238 47 108 224 47 156222 200 238 156 108 224 108 250222 200 238 156 250 224 156 162222 200 238 162 250 224 162 318222 200 238 318 250 224 200 Nada222 – 238 318 250 224 222 Nada– – 238 318 250 224 224 Nada– – 238 318 250 – 238 Nada– – – 318 250 – 250 Nada– – – 318 – – 318 Nada

Finaliza la ultima particion en p2 ={3, 47, 108, 156, 162, 200, 222, 224, 238, 250, 318}

Cuadro 72: Algoritmo de seleccion de reemplazo

Algoritmos y Programacion II Facultad de Ingenierıa

Page 74: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.25 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3

∑3i=1 ci < 2

0 1 0 0 1 Si1 1 1 1 3 No

Cuadro 73: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 49, 114, 167, 263,267, 295, 330, 356,395

3, 47, 108, 156, 162,200, 222, 224, 238,250, 318

Cuadro 74: Fase 1

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.25.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.25.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 3 = 1 + 1 + 1 = 2 + 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.26. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.26.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

3.26.2. Salida final

p1 = {22, 49, 114, 167, 263, 267, 295, 330, 356, 395};

p2 = {3, 47, 108, 156, 162, 200, 222, 224, 238, 250, 318}.

Enrique P. Calot Algoritmos y Programacion II

Page 75: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.26 Seleccion Natural con buffers de tamano 6 73

E1 E2 E3 S

D 22, 49, 114, 167, 263,267, 295, 330, 356,395

3, 47, 108, 156, 162,200, 222, 224, 238,250, 318

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E2 E3 E1

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 75: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra– – – – – – – – – – – – Nada 263

263 – – – – – – – – – – – Nada 267263 267 – – – – – – – – – – Nada 167263 267 167 – – – – – – – – – Nada 395263 267 167 395 – – – – – – – – Nada 22263 267 167 395 22 – – – – – – – Nada 330263 267 167 395 22 330 – – – – – – 22 49263 267 167 395 49 330 – – – – – – 49 114263 267 167 395 114 330 – – – – – – 114 108263 267 167 395 – 330 108 – – – – – Nada 295263 267 167 395 295 330 108 – – – – – 167 356263 267 356 395 295 330 108 – – – – – 263 3– 267 356 395 295 330 108 3 – – – – Nada 238– 267 356 395 295 330 108 3 238 – – – Nada 224– 267 356 395 295 330 108 3 238 224 – – Nada 222– 267 356 395 295 330 108 3 238 224 222 – Nada 47– 267 356 395 295 330 108 3 238 224 222 47 267 Nada– – 356 395 295 330 108 3 238 224 222 47 295 Nada– – 356 395 – 330 108 3 238 224 222 47 330 Nada– – 356 395 – – 108 3 238 224 222 47 356 Nada– – – 395 – – 108 3 238 224 222 47 395 Nada

108 3 238 224 222 47 – – – – – –Nueva particion! Se cierra la particion p1 = {22, 49, 114, 167, 263, 267, 295, 330, 356, 395}

3 200108 200 238 224 222 47 – – – – – – 47 156108 200 238 224 222 156 – – – – – – 108 250250 200 238 224 222 156 – – – – – – 156 162250 200 238 224 222 162 – – – – – – 162 318250 200 238 224 222 318 – – – – – – 200 Nada250 – 238 224 222 318 – – – – – – 222 Nada250 – 238 224 – 318 – – – – – – 224 Nada250 – 238 – – 318 – – – – – – 238 Nada250 – – – – 318 – – – – – – 250 Nada– – – – – 318 – – – – – – 318 Nada

Finaliza la ultima particion en p2 = {3, 47, 108, 156, 162, 200, 222, 224, 238, 250, 318}

Cuadro 76: Algoritmo de seleccion de natural

Algoritmos y Programacion II Facultad de Ingenierıa

Page 76: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.27 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3

∑3i=1 ci < 2

0 1 0 0 1 Si1 1 1 1 3 No

Cuadro 77: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 49, 114, 167, 263,267, 295, 330, 356,395

3, 47, 108, 156, 162,200, 222, 224, 238,250, 318

Cuadro 78: Fase 1

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.27.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.27.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 3 = 1 + 1 + 1 = 2 + 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.28. Bubble Sort ascendente

3.28.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 77: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.28 Bubble Sort ascendente 75

E1 E2 E3 S

D 22, 49, 114, 167, 263,267, 295, 330, 356,395

3, 47, 108, 156, 162,200, 222, 224, 238,250, 318

3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

S E2 E3 E1

– – – 3, 22, 47, 49, 108,114, 156, 162, 167,200, 222, 224, 238,250, 263, 267, 295,318, 330, 356, 395

Cuadro 79: Fase final

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 18/20

1 263 167 267 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 395 16/19

2 167 263 22 267 49 114 108 295 330 3 238 224 222 47 200 156 250 162 318 356 395 14/18

3 167 22 263 49 114 108 267 295 3 238 224 222 47 200 156 250 162 318 330 356 395 13/17

4 22 167 49 114 108 263 267 3 238 224 222 47 200 156 250 162 295 318 330 356 395 12/16

5 22 49 114 108 167 263 3 238 224 222 47 200 156 250 162 267 295 318 330 356 395 10/15

6 22 49 108 114 167 3 238 224 222 47 200 156 250 162 263 267 295 318 330 356 395 7/14

7 22 49 108 114 3 167 224 222 47 200 156 238 162 250 263 267 295 318 330 356 395 6/13

8 22 49 108 3 114 167 222 47 200 156 224 162 238 250 263 267 295 318 330 356 395 5/12

9 22 49 3 108 114 167 47 200 156 222 162 224 238 250 263 267 295 318 330 356 395 4/11

10 22 3 49 108 114 47 167 156 200 162 222 224 238 250 263 267 295 318 330 356 395 4/10

11 3 22 49 108 47 114 156 167 162 200 222 224 238 250 263 267 295 318 330 356 395 2/9

12 3 22 49 47 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 1/8

13 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/7

14 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/6

15 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/5

16 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/4

17 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/3

18 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/2

19 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/1

20 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/0

Cuadro 80: Ordenamiento ascendente por bubble sort

Algoritmos y Programacion II Facultad de Ingenierıa

Page 78: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.29 Bubble Sort descendente

3.29. Bubble Sort descendente

3.29.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 79: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.29 Bubble Sort descendente 77

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 17/20

1 267 263 395 167 330 49 114 108 295 356 22 238 224 222 47 200 156 250 162 318 3 15/19

2 267 395 263 330 167 114 108 295 356 49 238 224 222 47 200 156 250 162 318 22 3 12/18

3 395 267 330 263 167 114 295 356 108 238 224 222 49 200 156 250 162 318 47 22 3 11/17

4 395 330 267 263 167 295 356 114 238 224 222 108 200 156 250 162 318 49 47 22 3 10/16

5 395 330 267 263 295 356 167 238 224 222 114 200 156 250 162 318 108 49 47 22 3 10/15

6 395 330 267 295 356 263 238 224 222 167 200 156 250 162 318 114 108 49 47 22 3 6/14

7 395 330 295 356 267 263 238 224 222 200 167 250 162 318 156 114 108 49 47 22 3 3/13

8 395 330 356 295 267 263 238 224 222 200 250 167 318 162 156 114 108 49 47 22 3 3/12

9 395 356 330 295 267 263 238 224 222 250 200 318 167 162 156 114 108 49 47 22 3 2/11

10 395 356 330 295 267 263 238 224 250 222 318 200 167 162 156 114 108 49 47 22 3 2/10

11 395 356 330 295 267 263 238 250 224 318 222 200 167 162 156 114 108 49 47 22 3 2/9

12 395 356 330 295 267 263 250 238 318 224 222 200 167 162 156 114 108 49 47 22 3 1/8

13 395 356 330 295 267 263 250 318 238 224 222 200 167 162 156 114 108 49 47 22 3 1/7

14 395 356 330 295 267 263 318 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/6

15 395 356 330 295 267 318 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/5

16 395 356 330 295 318 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/4

17 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/3

18 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/2

19 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/1

20 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/0

Cuadro 81: Ordenamiento descendente por bubble sort

Algoritmos y Programacion II Facultad de Ingenierıa

Page 80: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.30 Bilateral Bubble Sort ascendente

3.30. Bilateral Bubble Sort ascendente

3.30.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 81: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.30 Bilateral Bubble Sort ascendente 79

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 18/20

1 263 167 267 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 395 15/20

2 3 263 167 267 22 330 49 114 108 295 356 47 238 224 222 156 200 162 250 318 395 15/18

3 3 167 263 22 267 49 114 108 295 330 47 238 224 222 156 200 162 250 318 356 395 12/18

4 3 22 167 263 47 267 49 114 108 295 330 156 238 224 222 162 200 250 318 356 395 12/16

5 3 22 167 47 263 49 114 108 267 295 156 238 224 222 162 200 250 318 330 356 395 8/16

6 3 22 47 167 49 263 108 114 156 267 295 162 238 224 222 200 250 318 330 356 395 10/14

7 3 22 47 49 167 108 114 156 263 267 162 238 224 222 200 250 295 318 330 356 395 6/14

8 3 22 47 49 108 167 114 156 162 263 267 200 238 224 222 250 295 318 330 356 395 8/12

9 3 22 47 49 108 114 156 162 167 263 200 238 224 222 250 267 295 318 330 356 395 3/12

10 3 22 47 49 108 114 156 162 167 200 263 222 238 224 250 267 295 318 330 356 395 4/10

11 3 22 47 49 108 114 156 162 167 200 222 238 224 250 263 267 295 318 330 356 395 1/10

12 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/8

13 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/8

14 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/6

15 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/6

16 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/4

17 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/4

18 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/2

19 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/2

20 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 0/0

Cuadro 82: Ordenamiento ascendente por bubble sort bilaeral

Algoritmos y Programacion II Facultad de Ingenierıa

Page 82: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.31 Bilateral Bubble Sort descendente

3.31. Bilateral Bubble Sort descendente

3.31.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 83: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.31 Bilateral Bubble Sort descendente 81

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 17/20

1 267 263 395 167 330 49 114 108 295 356 22 238 224 222 47 200 156 250 162 318 3 17/20

2 395 267 263 356 167 330 49 114 108 295 318 22 238 224 222 47 200 156 250 162 3 14/18

3 395 267 356 263 330 167 114 108 295 318 49 238 224 222 47 200 156 250 162 22 3 13/18

4 395 356 267 330 263 318 167 114 108 295 250 49 238 224 222 47 200 156 162 22 3 10/16

5 395 356 330 267 318 263 167 114 295 250 108 238 224 222 49 200 156 162 47 22 3 7/16

6 395 356 330 318 267 295 263 167 114 250 238 108 224 222 200 49 162 156 47 22 3 8/14

7 395 356 330 318 295 267 263 167 250 238 114 224 222 200 108 162 156 49 47 22 3 3/14

8 395 356 330 318 295 267 263 250 167 238 224 114 222 200 162 108 156 49 47 22 3 6/12

9 395 356 330 318 295 267 263 250 238 224 167 222 200 162 114 156 108 49 47 22 3 2/12

10 395 356 330 318 295 267 263 250 238 224 222 167 200 162 156 114 108 49 47 22 3 1/10

11 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/10

12 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/8

13 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/8

14 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/6

15 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/6

16 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/4

17 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/4

18 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/2

19 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/2

20 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 0/0

Cuadro 83: Ordenamiento descendente por bubble sort bilaeral

Algoritmos y Programacion II Facultad de Ingenierıa

Page 84: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.32 Selection Sort ascendente

3.32. Selection Sort ascendente

3.32.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 85: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.32 Selection Sort ascendente 83

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 1/20

1 3 267 167 395 22 330 49 114 108 295 356 263 238 224 222 47 200 156 250 162 318 1/19

2 3 22 167 395 267 330 49 114 108 295 356 263 238 224 222 47 200 156 250 162 318 1/18

3 3 22 47 395 267 330 49 114 108 295 356 263 238 224 222 167 200 156 250 162 318 1/17

4 3 22 47 49 267 330 395 114 108 295 356 263 238 224 222 167 200 156 250 162 318 1/16

5 3 22 47 49 108 330 395 114 267 295 356 263 238 224 222 167 200 156 250 162 318 1/15

6 3 22 47 49 108 114 395 330 267 295 356 263 238 224 222 167 200 156 250 162 318 1/14

7 3 22 47 49 108 114 156 330 267 295 356 263 238 224 222 167 200 395 250 162 318 1/13

8 3 22 47 49 108 114 156 162 267 295 356 263 238 224 222 167 200 395 250 330 318 1/12

9 3 22 47 49 108 114 156 162 167 295 356 263 238 224 222 267 200 395 250 330 318 1/11

10 3 22 47 49 108 114 156 162 167 200 356 263 238 224 222 267 295 395 250 330 318 1/10

11 3 22 47 49 108 114 156 162 167 200 222 263 238 224 356 267 295 395 250 330 318 1/9

12 3 22 47 49 108 114 156 162 167 200 222 224 238 263 356 267 295 395 250 330 318 1/8

13 3 22 47 49 108 114 156 162 167 200 222 224 238 263 356 267 295 395 250 330 318 1/7

14 3 22 47 49 108 114 156 162 167 200 222 224 238 250 356 267 295 395 263 330 318 1/6

15 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 395 356 330 318 1/5

16 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 395 356 330 318 1/4

17 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 395 356 330 318 1/3

18 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 356 330 395 1/2

19 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 1/1

20 3 22 47 49 108 114 156 162 167 200 222 224 238 250 263 267 295 318 330 356 395 1/0

Cuadro 84: Ordenamiento ascendente por seleccion

Algoritmos y Programacion II Facultad de Ingenierıa

Page 86: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.33 Selection Sort descendente

3.33. Selection Sort descendente

3.33.1. Desarrollo

Enrique P. Calot Algoritmos y Programacion II

Page 87: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.33 Selection Sort descendente 85

0 263 267 167 395 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 1/20

1 395 267 167 263 22 330 49 114 108 295 356 3 238 224 222 47 200 156 250 162 318 1/19

2 395 356 167 263 22 330 49 114 108 295 267 3 238 224 222 47 200 156 250 162 318 1/18

3 395 356 330 263 22 167 49 114 108 295 267 3 238 224 222 47 200 156 250 162 318 1/17

4 395 356 330 318 22 167 49 114 108 295 267 3 238 224 222 47 200 156 250 162 263 1/16

5 395 356 330 318 295 167 49 114 108 22 267 3 238 224 222 47 200 156 250 162 263 1/15

6 395 356 330 318 295 267 49 114 108 22 167 3 238 224 222 47 200 156 250 162 263 1/14

7 395 356 330 318 295 267 263 114 108 22 167 3 238 224 222 47 200 156 250 162 49 1/13

8 395 356 330 318 295 267 263 250 108 22 167 3 238 224 222 47 200 156 114 162 49 1/12

9 395 356 330 318 295 267 263 250 238 22 167 3 108 224 222 47 200 156 114 162 49 1/11

10 395 356 330 318 295 267 263 250 238 224 167 3 108 22 222 47 200 156 114 162 49 1/10

11 395 356 330 318 295 267 263 250 238 224 222 3 108 22 167 47 200 156 114 162 49 1/9

12 395 356 330 318 295 267 263 250 238 224 222 200 108 22 167 47 3 156 114 162 49 1/8

13 395 356 330 318 295 267 263 250 238 224 222 200 167 22 108 47 3 156 114 162 49 1/7

14 395 356 330 318 295 267 263 250 238 224 222 200 167 162 108 47 3 156 114 22 49 1/6

15 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 47 3 108 114 22 49 1/5

16 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 3 108 47 22 49 1/4

17 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 3 47 22 49 1/3

18 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/2

19 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/1

20 395 356 330 318 295 267 263 250 238 224 222 200 167 162 156 114 108 49 47 22 3 1/0

Cuadro 85: Ordenamiento descendente por seleccion

Algoritmos y Programacion II Facultad de Ingenierıa

Page 88: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-02-08

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

263, 267, 167, 395, 22†, 330, 49, 114†, 108†, 295, 356†, 3, 238, 224, 222, 47†, 200,

156†, 250, 162, 318†

Se pide:

a. El Sort Externo se suele utilizar cuando el tamano del lote de datos es superior al que puede almacenar lamaquina en su memoria interna, ya que en tal caso es mas util ordenar mediante tecnicas de Sort Interno.¿en que otro caso se debe usar Sort Externo, incluso conociendo el tamano del lote de datos y sabiendoque este es menor a la memoria interna?

b. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

c. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Quick Sort (hasta haber comple-tado dos niveles de recursividad).

d. Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

e. Procesar el B-tree de orden tal que, con un elemento –a excepcion de la raız– hace underflow pero con 2no, resultante de ingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

222, 224†, 250†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

Page 89: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 5 de Julio de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-07-05

*[email protected]

Page 90: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. a. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. b. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4. c. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 102.4.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5. d. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.6. e. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Resolucion explayada 13

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 453.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 463.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.6. Merge Polifasico con particiones formadas de 1 elemento . . . . . . . . . . . . . . . . . . . 463.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.7. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 473.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.8. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 493.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.9. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 543.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.10. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 543.10.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.10.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 60

Enrique P. Calot Algoritmos y Programacion II

Page 91: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.11.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 613.11.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.12. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.12.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.12.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 643.13.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 643.13.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.14. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 643.14.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.14.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 663.15.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 663.15.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.16. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.16.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.16.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 693.17.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 693.17.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.18. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.18.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.18.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.19. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 713.19.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 723.19.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.20. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 723.20.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.20.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 743.21.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 743.21.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.22. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.22.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.22.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 763.23.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 763.23.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.24. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 763.24.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.24.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 783.25.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.25.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.26. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.26.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.26.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 803.27.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 92: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.28. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.29. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.30. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.31. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.32. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.33. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Enrique P. Calot Algoritmos y Programacion II

Page 93: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

385, 196, 25, 315, 321†, 143, 37, 375†, 79†, 347, 376†, 218, 30, 213, 19,

231†, 206, 151†, 367, 171, 313†

Se pide:

a. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown) y RadixSort en orden ascendente (entero).

b. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

218, 213†, 313†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 parti-ciones correspondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {25, 196, 315, 321, 385}; p2 = {37, 143, 375}; . . . ; p6 = {151, 206}; p7 = {171, 313, 367}.

d. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

e. ¿Cual es el peor caso posible para ser ordenado ascendentemente con el algoritmo de Quick Sort?Suponiendo que existen 40000 elementos, ¿cual es el maximo de ejecuciones recursivas anidadas quepueden llegar a ser ejecutadas en ese caso?

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 94: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 a. Heap Sort

2.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Paso 0 Paso 1 Paso 2 Paso 3385 030 206 019196 321 213 025025 231 313 030315 151 315 037321 171 218 079143 143 019 143037 213 321 151375 313 025 171079 385 030 196347 025 231 206376 315 037 213218 375 143 218030 196 347 231213 376 151 313019 206 367 315231 037 171 321206 347 375 347151 367 376 367367 218 079 375171 079 385 376313 019 196 385

2.2. a. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

2.2.1. Arbol inicial

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 95: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.2 a. Heap Sort 7

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376

218 30 213 19 231 206 151 367 171 313

Heapfy paso 1

385

196 25

315 321 143 37

375 367 347 376 218 30 213 19

231 206 151 79 171 313

Vector:

385 196 25 315 321 143 37 375 367 347 376

218 30 213 19 231 206 151 79 171 313

Heapfy paso 2

385

196 25

375 376 218 213

315 367 347 321 143 30 37 19

231 206 151 79 171 313

Vector:

385 196 25 375 376 218 213 315 367 347 321

143 30 37 19 231 206 151 79 171 313

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 96: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.3 b. Ejercicio de B-trees

385

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 196

Vector:

385 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 196

Heapfy paso 4

385

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 196

Vector:

385 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 196

196

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 385

Vector:

196 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 385

Paso 1: ultimo congelado pedido antes del corte

2.3. b. Ejercicio de B-trees

Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

Enrique P. Calot Algoritmos y Programacion II

Page 97: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.3 b. Ejercicio de B-trees 9

218, 213†, 313†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.3.1. Insercion

•315•

×25×196× ×321×385×

Insercion de 5 elementos: 385, 196, 25, 315, 321

•315•

×25×37×143×196× ×321×375×385×

Insercion de 3 elementos: 143, 37, 375

•79•315•

×25×37× ×143×196× ×321×375×385×

Insercion de 1 elemento: 79

•79•315•375•

×25×37× ×143×196× ×321×347× ×376×385×

Insercion de 2 elementos: 347, 376

•79•213•315•375•

×19×25×30×37× ×143×196× ×218×231× ×321×347× ×376×385×

Insercion de 5 elementos: 218, 30, 213, 19, 231

•79•213•315•375•

×19×25×30×37× ×143×151×196×206× ×218×231× ×321×347× ×376×385×

Insercion de 2 elementos: 206, 151

•213•

•79•171• •315•375•

×19×25×30×37× ×143×151× ×196×206× ×218×231×313× ×321×347×367× ×376×385×

Insercion de 3 elementos: 367, 171, 313

2.3.2. Eliminacion

•79•171•315•375•

×19×25×30×37× ×143×151× ×196×206×231×313× ×321×347×367× ×376×385×

Eliminacion de 2 elementos: 218, 213

Algoritmos y Programacion II Facultad de Ingenierıa

Page 98: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.4 c. Merge Polifasico

•79•171•315•375•

×19×25×30×37× ×143×151× ×196×206×231× ×321×347×367× ×376×385×

Eliminacion de 1 elemento: 313

2.4. c. Merge Polifasico

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {25, 196, 315, 321, 385}; p2 = {37, 143, 375}; . . . ; p6 = {151, 206}; p7 = {171, 313, 367}.

2.4.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.4.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

2.5. d. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

2.5.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 99: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 d. Seleccion de reemplazo 11

E1 E2 E3 S

D D 25, 196, 315, 321, 385 –37, 143, 375 79 347, 376 –19, 30, 213, 218, 231 151, 206 – –171, 313, 367 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D 25, 196, 315, 321, 385 25, 196, 315, 321, 38537, 143, 375 79 347, 376 37, 79, 143, 347, 375,

376

E1 E2 S E3

19, 30, 213, 218, 231 151, 206 – 25, 196, 315, 321, 385171, 313, 367 – – 37, 79, 143, 347, 375,

376

Cuadro 3: Fase 2

E1 E2 E3 S

D D 25, 196, 315, 321, 385 25, 196, 315, 321, 38537, 143, 375 79 347, 376 37, 79, 143, 347, 375,

376

E1 E2 S E3

19, 30, 213, 218, 231 151, 206 19, 25, 30, 151, 196,206, 213, 218, 231,315, 321, 385

25, 196, 315, 321, 385

E1 S E2 E3

171, 313, 367 – 19, 25, 30, 151, 196,206, 213, 218, 231,315, 321, 385

37, 79, 143, 347, 375,376

Cuadro 4: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 100: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.5 d. Seleccion de reemplazo

E1 E2 E3 S

D D 25, 196, 315, 321, 385 25, 196, 315, 321, 38537, 143, 375 79 347, 376 37, 79, 143, 347, 375,

376

E1 E2 S E3

19, 30, 213, 218, 231 151, 206 19, 25, 30, 151, 196,206, 213, 218, 231,315, 321, 385

25, 196, 315, 321, 385

E1 S E2 E3

171, 313, 367 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

19, 25, 30, 151, 196,206, 213, 218, 231,315, 321, 385

37, 79, 143, 347, 375,376

S E1 E2 E3

– 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

– –

Cuadro 5: Fase final

b1 b2 b3 b4 Sale Entra

– – – – Nada 385

385 – – – Nada 196

385 196 – – Nada 25

385 196 25 – Nada 315

385 196 25 315 25 321

385 196 321 315 196 143

385 143 321 315 315 37

385 143 321 37 321 375

385 143 375 37 375 79

385 143 79 37 385 347

347 143 79 37

Nueva particion! Se cierra la particion p1 =

{25, 196, 315, 321, 375, 385}37 376

347 143 79 376 79 218

347 143 218 376 143 30

347 30 218 376 218 213

347 30 213 376 347 19

19 30 213 376 376 231

19 30 213 231

Nueva particion! Se cierra la particion p2 = {37, 79, 143, 218, 347, 376}19 206

206 30 213 231 30 151

206 151 213 231 151 367

206 367 213 231 206 171

171 367 213 231 213 313

171 367 313 231 231 Nada

171 367 313 – 313 Nada

171 367 – – 367 Nada

171 – – –

Nueva particion! Se cierra la particion p3 =

{19, 30, 151, 206, 213, 231, 313, 367}171 Nada

Finaliza la ultima particion en p4 = {171}

Enrique P. Calot Algoritmos y Programacion II

Page 101: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Pregunta teorica 13

2.5.2. Salida final

p1 = {25, 196, 315, 321, 375, 385};

p2 = {37, 79, 143, 218, 347, 376};

p3 = {19, 30, 151, 206, 213, 231, 313, 367};

p4 = {171}.

2.6. e. Pregunta teorica

¿Cual es el peor caso posible para ser ordenado ascendentemente con el algoritmo de Quick Sort?Suponiendo que existen 40000 elementos, ¿cual es el maximo de ejecuciones recursivas anidadas quepueden llegar a ser ejecutadas en ese caso?

2.6.1. Respuesta

Que el arreglo ya venga ordenado. Si viene ordenado en orden ascendente tomando el primero comopivote se obtienen n pasos (k = n). Si el orden es contrario, hay intercambios, pero tambien ocurren npasos. El orden entonces serıa de n2 y si existiesen 40000 elementos, la pila recursiva llegarıa a 40000ejecuciones simultaneas.

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 102: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 3.2 Quick Sort

Paso 0 Paso 1 Paso 2 Paso 3385 079 196 385196 019 385 376025 218 079 375315 037 376 367321 347 375 347143 367 171 321037 196 367 315375 376 151 313079 206 347 231347 385 143 218376 025 037 213218 315 231 206030 375 030 196213 143 025 171019 213 321 151231 313 019 143206 321 218 079151 231 315 037367 151 213 030171 171 313 025313 030 206 019

3.2. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

3.2.1. Desarrollo

Paso 1 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313

Paso 2 313 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 385

Paso 3 213 196 25 171 151 143 37 206 79 231 19 218 30 313 376 347 375 321 367 315

Paso 4 19 196 25 171 151 143 37 206 79 30 213 218 231 315 347 375 321 367 376

Paso 5 19 196 25 171 151 143 37 206 79 30 218 231 315 347 375 321 367

Paso 6 79 25 171 151 143 37 30 196 206 321 347 375 367

Paso 7 37 25 30 79 143 151 171 367 375

Paso 8 30 25 37 143 151 171

Final 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385

Enrique P. Calot Algoritmos y Programacion II

Page 103: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 15

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313

Arbol inicial y su vector asociadoHeapfy paso 0

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376

218 30 213 19 231 206 151 367 171 313

Heapfy paso 1

385

196 25

315 321 143 37

375 367 347 376 218 30 213 19

231 206 151 79 171 313

Vector:

385 196 25 315 321 143 37 375 367 347 376

218 30 213 19 231 206 151 79 171 313

Algoritmos y Programacion II Facultad de Ingenierıa

Page 104: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

Heapfy paso 2

385

196 25

375 376 218 213

315 367 347 321 143 30 37 19

231 206 151 79 171 313

Vector:

385 196 25 375 376 218 213 315 367 347 321

143 30 37 19 231 206 151 79 171 313

Heapfy paso 3

385

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 196

Vector:

385 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 196

Heapfy paso 4

385

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 196

Vector:

385 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 196

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 105: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

196

376 218

375 347 143 213

315 367 313 321 25 30 37 19

231 206 151 79 171 385

Vector:

196 376 218 375 347 143 213 315 367 313 321

25 30 37 19 231 206 151 79 171 385

Swapdown

376

375 218

367 347 143 213

315 196 313 321 25 30 37 19

231 206 151 79 171 385

Vector:

376 375 218 367 347 143 213 315 196 313 321

25 30 37 19 231 206 151 79 171 385

Intercambio y congelamiento

171

375 218

367 347 143 213

315 196 313 321 25 30 37 19

231 206 151 79 376 385

Vector:

171 375 218 367 347 143 213 315 196 313 321

25 30 37 19 231 206 151 79 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 106: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

375

367 218

315 347 143 213

231 196 313 321 25 30 37 19

171 206 151 79 376 385

Vector:

375 367 218 315 347 143 213 231 196 313 321

25 30 37 19 171 206 151 79 376 385

Intercambio y congelamiento

79

367 218

315 347 143 213

231 196 313 321 25 30 37 19

171 206 151 375 376 385

Vector:

79 367 218 315 347 143 213 231 196 313 321

25 30 37 19 171 206 151 375 376 385

Swapdown

367

347 218

315 321 143 213

231 196 313 79 25 30 37 19

171 206 151 375 376 385

Vector:

367 347 218 315 321 143 213 231 196 313 79

25 30 37 19 171 206 151 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 107: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

151

347 218

315 321 143 213

231 196 313 79 25 30 37 19

171 206 367 375 376 385

Vector:

151 347 218 315 321 143 213 231 196 313 79

25 30 37 19 171 206 367 375 376 385

Swapdown

347

321 218

315 313 143 213

231 196 151 79 25 30 37 19

171 206 367 375 376 385

Vector:

347 321 218 315 313 143 213 231 196 151 79

25 30 37 19 171 206 367 375 376 385

Intercambio y congelamiento

206

321 218

315 313 143 213

231 196 151 79 25 30 37 19

171 347 367 375 376 385

Vector:

206 321 218 315 313 143 213 231 196 151 79

25 30 37 19 171 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 108: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

321

315 218

231 313 143 213

206 196 151 79 25 30 37 19

171 347 367 375 376 385

Vector:

321 315 218 231 313 143 213 206 196 151 79

25 30 37 19 171 347 367 375 376 385

Intercambio y congelamiento

171

315 218

231 313 143 213

206 196 151 79 25 30 37 19

321 347 367 375 376 385

Vector:

171 315 218 231 313 143 213 206 196 151 79

25 30 37 19 321 347 367 375 376 385

Swapdown

315

313 218

231 171 143 213

206 196 151 79 25 30 37 19

321 347 367 375 376 385

Vector:

315 313 218 231 171 143 213 206 196 151 79

25 30 37 19 321 347 367 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 109: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

19

313 218

231 171 143 213

206 196 151 79 25 30 37 315

321 347 367 375 376 385

Vector:

19 313 218 231 171 143 213 206 196 151 79

25 30 37 315 321 347 367 375 376 385

Swapdown

313

231 218

206 171 143 213

19 196 151 79 25 30 37 315

321 347 367 375 376 385

Vector:

313 231 218 206 171 143 213 19 196 151 79

25 30 37 315 321 347 367 375 376 385

Intercambio y congelamiento

37

231 218

206 171 143 213

19 196 151 79 25 30 313 315

321 347 367 375 376 385

Vector:

37 231 218 206 171 143 213 19 196 151 79

25 30 313 315 321 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 110: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

231

206 218

196 171 143 213

19 37 151 79 25 30 313 315

321 347 367 375 376 385

Vector:

231 206 218 196 171 143 213 19 37 151 79

25 30 313 315 321 347 367 375 376 385

Intercambio y congelamiento

30

206 218

196 171 143 213

19 37 151 79 25 231 313 315

321 347 367 375 376 385

Vector:

30 206 218 196 171 143 213 19 37 151 79

25 231 313 315 321 347 367 375 376 385

Swapdown

218

206 213

196 171 143 30

19 37 151 79 25 231 313 315

321 347 367 375 376 385

Vector:

218 206 213 196 171 143 30 19 37 151 79

25 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 111: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

25

206 213

196 171 143 30

19 37 151 79 218 231 313 315

321 347 367 375 376 385

Vector:

25 206 213 196 171 143 30 19 37 151 79

218 231 313 315 321 347 367 375 376 385

Swapdown

213

206 143

196 171 25 30

19 37 151 79 218 231 313 315

321 347 367 375 376 385

Vector:

213 206 143 196 171 25 30 19 37 151 79

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

79

206 143

196 171 25 30

19 37 151 213 218 231 313 315

321 347 367 375 376 385

Vector:

79 206 143 196 171 25 30 19 37 151 213

218 231 313 315 321 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 112: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

206

196 143

79 171 25 30

19 37 151 213 218 231 313 315

321 347 367 375 376 385

Vector:

206 196 143 79 171 25 30 19 37 151 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

151

196 143

79 171 25 30

19 37 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

151 196 143 79 171 25 30 19 37 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

196

171 143

79 151 25 30

19 37 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

196 171 143 79 151 25 30 19 37 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 113: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

37

171 143

79 151 25 30

19 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

37 171 143 79 151 25 30 19 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

171

151 143

79 37 25 30

19 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

171 151 143 79 37 25 30 19 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

19

151 143

79 37 25 30

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

19 151 143 79 37 25 30 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 114: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

151

79 143

19 37 25 30

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

151 79 143 19 37 25 30 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

30

79 143

19 37 25 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

30 79 143 19 37 25 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

143

79 30

19 37 25 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

143 79 30 19 37 25 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 115: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

25

79 30

19 37 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

25 79 30 19 37 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

79

37 30

19 25 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

79 37 30 19 25 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

25

37 30

19 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

25 37 30 19 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 116: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

37

25 30

19 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

37 25 30 19 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

19

25 30

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

19 25 30 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

30

25 19

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

30 25 19 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 117: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

19

25 30

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

19 25 30 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

25

19 30

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

25 19 30 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Intercambio y congelamiento

19

25 30

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

19 25 30 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 118: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.4 Heap Sort descendente

19

25 30

37 79 143 151

171 196 206 213 218 231 313 315

321 347 367 375 376 385

Vector:

19 25 30 37 79 143 151 171 196 206 213

218 231 313 315 321 347 367 375 376 385

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

3.4.1. Arbol inicial

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 119: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

385

196 25

315 321 143 37

375 79 347 376 218 30 213 19

231 206 151 367 171 313

Vector:

385 196 25 315 321 143 37 375 79 347 376

218 30 213 19 231 206 151 367 171 313

Heapfy paso 1

385

196 25

315 321 143 37

206 79 171 376 218 30 213 19

231 375 151 367 347 313

Vector:

385 196 25 315 321 143 37 206 79 171 376

218 30 213 19 231 375 151 367 347 313

Heapfy paso 2

385

196 25

79 171 30 19

206 151 313 376 218 143 213 37

231 375 315 367 347 321

Vector:

385 196 25 79 171 30 19 206 151 313 376

218 143 213 37 231 375 315 367 347 321

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 120: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

385

79 19

151 171 30 25

206 196 313 376 218 143 213 37

231 375 315 367 347 321

Vector:

385 79 19 151 171 30 25 206 196 313 376

218 143 213 37 231 375 315 367 347 321

Heapfy paso 4

19

79 25

151 171 30 37

206 196 313 376 218 143 213 385

231 375 315 367 347 321

Vector:

19 79 25 151 171 30 37 206 196 313 376

218 143 213 385 231 375 315 367 347 321

Intercambio y congelamiento

321

79 25

151 171 30 37

206 196 313 376 218 143 213 385

231 375 315 367 347 19

Vector:

321 79 25 151 171 30 37 206 196 313 376

218 143 213 385 231 375 315 367 347 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 121: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

25

79 30

151 171 143 37

206 196 313 376 218 321 213 385

231 375 315 367 347 19

Vector:

25 79 30 151 171 143 37 206 196 313 376

218 321 213 385 231 375 315 367 347 19

Intercambio y congelamiento

347

79 30

151 171 143 37

206 196 313 376 218 321 213 385

231 375 315 367 25 19

Vector:

347 79 30 151 171 143 37 206 196 313 376

218 321 213 385 231 375 315 367 25 19

Swapdown

30

79 37

151 171 143 213

206 196 313 376 218 321 347 385

231 375 315 367 25 19

Vector:

30 79 37 151 171 143 213 206 196 313 376

218 321 347 385 231 375 315 367 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 122: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

367

79 37

151 171 143 213

206 196 313 376 218 321 347 385

231 375 315 30 25 19

Vector:

367 79 37 151 171 143 213 206 196 313 376

218 321 347 385 231 375 315 30 25 19

Swapdown

37

79 143

151 171 218 213

206 196 313 376 367 321 347 385

231 375 315 30 25 19

Vector:

37 79 143 151 171 218 213 206 196 313 376

367 321 347 385 231 375 315 30 25 19

Intercambio y congelamiento

315

79 143

151 171 218 213

206 196 313 376 367 321 347 385

231 375 37 30 25 19

Vector:

315 79 143 151 171 218 213 206 196 313 376

367 321 347 385 231 375 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 123: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

79

151 143

196 171 218 213

206 315 313 376 367 321 347 385

231 375 37 30 25 19

Vector:

79 151 143 196 171 218 213 206 315 313 376

367 321 347 385 231 375 37 30 25 19

Intercambio y congelamiento

375

151 143

196 171 218 213

206 315 313 376 367 321 347 385

231 79 37 30 25 19

Vector:

375 151 143 196 171 218 213 206 315 313 376

367 321 347 385 231 79 37 30 25 19

Swapdown

143

151 213

196 171 218 347

206 315 313 376 367 321 375 385

231 79 37 30 25 19

Vector:

143 151 213 196 171 218 347 206 315 313 376

367 321 375 385 231 79 37 30 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 124: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

231

151 213

196 171 218 347

206 315 313 376 367 321 375 385

143 79 37 30 25 19

Vector:

231 151 213 196 171 218 347 206 315 313 376

367 321 375 385 143 79 37 30 25 19

Swapdown

151

171 213

196 231 218 347

206 315 313 376 367 321 375 385

143 79 37 30 25 19

Vector:

151 171 213 196 231 218 347 206 315 313 376

367 321 375 385 143 79 37 30 25 19

Intercambio y congelamiento

385

171 213

196 231 218 347

206 315 313 376 367 321 375 151

143 79 37 30 25 19

Vector:

385 171 213 196 231 218 347 206 315 313 376

367 321 375 151 143 79 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 125: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

171

196 213

206 231 218 347

385 315 313 376 367 321 375 151

143 79 37 30 25 19

Vector:

171 196 213 206 231 218 347 385 315 313 376

367 321 375 151 143 79 37 30 25 19

Intercambio y congelamiento

375

196 213

206 231 218 347

385 315 313 376 367 321 171 151

143 79 37 30 25 19

Vector:

375 196 213 206 231 218 347 385 315 313 376

367 321 171 151 143 79 37 30 25 19

Swapdown

196

206 213

315 231 218 347

385 375 313 376 367 321 171 151

143 79 37 30 25 19

Vector:

196 206 213 315 231 218 347 385 375 313 376

367 321 171 151 143 79 37 30 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 126: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

321

206 213

315 231 218 347

385 375 313 376 367 196 171 151

143 79 37 30 25 19

Vector:

321 206 213 315 231 218 347 385 375 313 376

367 196 171 151 143 79 37 30 25 19

Swapdown

206

231 213

315 313 218 347

385 375 321 376 367 196 171 151

143 79 37 30 25 19

Vector:

206 231 213 315 313 218 347 385 375 321 376

367 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

367

231 213

315 313 218 347

385 375 321 376 206 196 171 151

143 79 37 30 25 19

Vector:

367 231 213 315 313 218 347 385 375 321 376

206 196 171 151 143 79 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 127: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

213

231 218

315 313 367 347

385 375 321 376 206 196 171 151

143 79 37 30 25 19

Vector:

213 231 218 315 313 367 347 385 375 321 376

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

376

231 218

315 313 367 347

385 375 321 213 206 196 171 151

143 79 37 30 25 19

Vector:

376 231 218 315 313 367 347 385 375 321 213

206 196 171 151 143 79 37 30 25 19

Swapdown

218

231 347

315 313 367 376

385 375 321 213 206 196 171 151

143 79 37 30 25 19

Vector:

218 231 347 315 313 367 376 385 375 321 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 128: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

321

231 347

315 313 367 376

385 375 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

321 231 347 315 313 367 376 385 375 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

231

313 347

315 321 367 376

385 375 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

231 313 347 315 321 367 376 385 375 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

375

313 347

315 321 367 376

385 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

375 313 347 315 321 367 376 385 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 129: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

313

315 347

375 321 367 376

385 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

313 315 347 375 321 367 376 385 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

385

315 347

375 321 367 376

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

385 315 347 375 321 367 376 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

315

321 347

375 385 367 376

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

315 321 347 375 385 367 376 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 130: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

376

321 347

375 385 367 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

376 321 347 375 385 367 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

321

375 347

376 385 367 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

321 375 347 376 385 367 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

367

375 347

376 385 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

367 375 347 376 385 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 131: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

347

375 367

376 385 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

347 375 367 376 385 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

385

375 367

376 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

385 375 367 376 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

367

375 385

376 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

367 375 385 376 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 132: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

376

375 385

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

376 375 385 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

375

376 385

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

375 376 385 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

385

376 375

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

385 376 375 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 133: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion de reemplazo 45

376

385 375

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

376 385 375 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Intercambio y congelamiento

385

376 375

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

385 376 375 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

Swapdown

385

376 375

367 347 321 315

313 231 218 213 206 196 171 151

143 79 37 30 25 19

Vector:

385 376 375 367 347 321 315 313 231 218 213

206 196 171 151 143 79 37 30 25 19

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 134: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.6 Merge Polifasico con particiones formadas de 1 elemento

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 6: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

19, 30, 151, 206, 213,231, 313, 367

171 – –

Cuadro 7: Fase 1

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.6. Merge Polifasico con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 151, 206, 213,231, 313, 367

171 – 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

Cuadro 8: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 135: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico con particiones formadas de 2 elementos 47

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 151, 206, 213,231, 313, 367

171 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

S E2 E1 E3

– – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 9: Fase final

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 10: Calculo de la distribucion de columnas y dummies

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.7. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {196, 385}; p2 = {25, 315}; . . . ; p10 = {171, 367}; p11 = {313}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 136: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.7 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D –D D D –D D D –D 385 196 –25 315 321 –143 37 375 –79 347 376 –218 30 – –213 19 – –231 206 – –151 367 – –171 – – –313 – – –

Cuadro 11: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 385 196 196, 38525 315 321 25, 315, 321143 37 375 37, 143, 37579 347 376 79, 347, 376

E1 E2 S E3

218 30 – D

213 19 – D

231 206 – D

151 367 – 196, 385171 – – 25, 315, 321313 – – 37, 143, 375– – – 79, 347, 376

Cuadro 12: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 137: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 49

E1 E2 E3 S

D D D D

D D D D

D D D D

D 385 196 196, 38525 315 321 25, 315, 321143 37 375 37, 143, 37579 347 376 79, 347, 376

E1 E2 S E3

218 30 30, 218 D

213 19 19, 213 D

231 206 206, 231 D

151 367 151, 196, 367, 385 196, 385

E1 S E2 E3

171 – 30, 218 25, 315, 321313 – 19, 213 37, 143, 375– – 206, 231 79, 347, 376– – 151, 196, 367, 385 –

Cuadro 13: Fase 3

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {25, 196, 385}; p2 = {143, 315, 321}; . . . ; p6 = {151, 206, 231}; p7 = {171, 313, 367}.

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de las

Algoritmos y Programacion II Facultad de Ingenierıa

Page 138: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.8 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 385 196 196, 38525 315 321 25, 315, 321143 37 375 37, 143, 37579 347 376 79, 347, 376

E1 E2 S E3

218 30 30, 218 D

213 19 19, 213 D

231 206 206, 231 D

151 367 151, 196, 367, 385 196, 385

E1 S E2 E3

171 25, 30, 171, 218, 315,321

30, 218 25, 315, 321

313 19, 37, 143, 213, 313,375

19, 213 37, 143, 375

S E1 E2 E3

– 25, 30, 171, 218, 315,321

206, 231 79, 347, 376

– 19, 37, 143, 213, 313,375

151, 196, 367, 385 –

Cuadro 14: Fase 4

Enrique P. Calot Algoritmos y Programacion II

Page 139: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 51

E1 E2 E3 S

D D D D

D D D D

D D D D

D 385 196 196, 38525 315 321 25, 315, 321143 37 375 37, 143, 37579 347 376 79, 347, 376

E1 E2 S E3

218 30 30, 218 D

213 19 19, 213 D

231 206 206, 231 D

151 367 151, 196, 367, 385 196, 385

E1 S E2 E3

171 25, 30, 171, 218, 315,321

30, 218 25, 315, 321

313 19, 37, 143, 213, 313,375

19, 213 37, 143, 375

S E1 E2 E3

25, 30, 79, 171, 206,218, 231, 315, 321,347, 376

25, 30, 171, 218, 315,321

206, 231 79, 347, 376

E3 E1 E2 S

25, 30, 79, 171, 206,218, 231, 315, 321,347, 376

19, 37, 143, 213, 313,375

151, 196, 367, 385 –

Cuadro 15: Fase 5

Algoritmos y Programacion II Facultad de Ingenierıa

Page 140: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.8 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 385 196 196, 38525 315 321 25, 315, 321143 37 375 37, 143, 37579 347 376 79, 347, 376

E1 E2 S E3

218 30 30, 218 D

213 19 19, 213 D

231 206 206, 231 D

151 367 151, 196, 367, 385 196, 385

E1 S E2 E3

171 25, 30, 171, 218, 315,321

30, 218 25, 315, 321

313 19, 37, 143, 213, 313,375

19, 213 37, 143, 375

S E1 E2 E3

25, 30, 79, 171, 206,218, 231, 315, 321,347, 376

25, 30, 171, 218, 315,321

206, 231 79, 347, 376

E3 E1 E2 S

25, 30, 79, 171, 206,218, 231, 315, 321,347, 376

19, 37, 143, 213, 313,375

151, 196, 367, 385 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E1 E2 E3

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 16: Fase final

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 17: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 141: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 53

E1 E2 E3 S

D D D –D D D –196, 385 25, 315 143, 321 –37, 375 79, 347 218, 376 –30, 213 19, 231 – –151, 206 171, 367 – –313 – – –

Cuadro 18: Fase 1

E1 E2 E3 S

D D D D

D D D D

196, 385 25, 315 143, 321 25, 143, 196, 315,321, 385

37, 375 79, 347 218, 376 37, 79, 218, 347, 375,376

E1 E2 S E3

30, 213 19, 231 – D

151, 206 171, 367 – D

313 – – 25, 143, 196, 315,321, 385

– – – 37, 79, 218, 347, 375,376

Cuadro 19: Fase 2

E1 E2 E3 S

D D D D

D D D D

196, 385 25, 315 143, 321 25, 143, 196, 315,321, 385

37, 375 79, 347 218, 376 37, 79, 218, 347, 375,376

E1 E2 S E3

30, 213 19, 231 19, 30, 213, 231 D

151, 206 171, 367 151, 171, 206, 367 D

E1 S E2 E3

313 – 19, 30, 213, 231 25, 143, 196, 315,321, 385

– – 151, 171, 206, 367 37, 79, 218, 347, 375,376

Cuadro 20: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 142: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

D D D D

196, 385 25, 315 143, 321 25, 143, 196, 315,321, 385

37, 375 79, 347 218, 376 37, 79, 218, 347, 375,376

E1 E2 S E3

30, 213 19, 231 19, 30, 213, 231 D

151, 206 171, 367 151, 171, 206, 367 D

E1 S E2 E3

313 19, 25, 30, 143, 196,213, 231, 313, 315,321, 385

19, 30, 213, 231 25, 143, 196, 315,321, 385

S E1 E2 E3

– 19, 25, 30, 143, 196,213, 231, 313, 315,321, 385

151, 171, 206, 367 37, 79, 218, 347, 375,376

Cuadro 21: Fase 4

cuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {25, 196, 315, 385}; p2 = {37, 143, 321, 375}; p3 = {79, 218, 347, 376}; p4 ={19, 30, 213, 231}; p5 = {151, 171, 206, 367}; p6 = {313}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.10. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

Enrique P. Calot Algoritmos y Programacion II

Page 143: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Seleccion de reemplazo con buffer de tamano 2 55

E1 E2 E3 S

D D D D

D D D D

196, 385 25, 315 143, 321 25, 143, 196, 315,321, 385

37, 375 79, 347 218, 376 37, 79, 218, 347, 375,376

E1 E2 S E3

30, 213 19, 231 19, 30, 213, 231 D

151, 206 171, 367 151, 171, 206, 367 D

E1 S E2 E3

313 19, 25, 30, 143, 196,213, 231, 313, 315,321, 385

19, 30, 213, 231 25, 143, 196, 315,321, 385

S E1 E2 E3

19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

19, 25, 30, 143, 196,213, 231, 313, 315,321, 385

151, 171, 206, 367 37, 79, 218, 347, 375,376

E1 S E2 E3

19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

– – –

Cuadro 22: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 23: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 25, 196, 385 –143, 315, 321 37, 79, 375 218, 347, 376 –19, 30, 213 151, 206, 231 – –171, 313, 367 – – –

Cuadro 24: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 144: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.10 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 25, 196, 385 25, 196, 385143, 315, 321 37, 79, 375 218, 347, 376 37, 79, 143, 218, 315,

321, 347, 375, 376

E1 E2 S E3

19, 30, 213 151, 206, 231 – 25, 196, 385171, 313, 367 – – 37, 79, 143, 218, 315,

321, 347, 375, 376

Cuadro 25: Fase 2

E1 E2 E3 S

D D 25, 196, 385 25, 196, 385143, 315, 321 37, 79, 375 218, 347, 376 37, 79, 143, 218, 315,

321, 347, 375, 376

E1 E2 S E3

19, 30, 213 151, 206, 231 19, 25, 30, 151, 196,206, 213, 231, 385

25, 196, 385

E1 S E2 E3

171, 313, 367 – 19, 25, 30, 151, 196,206, 213, 231, 385

37, 79, 143, 218, 315,321, 347, 375, 376

Cuadro 26: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 145: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Seleccion de reemplazo con buffer de tamano 2 57

E1 E2 E3 S

D D 25, 196, 385 25, 196, 385143, 315, 321 37, 79, 375 218, 347, 376 37, 79, 143, 218, 315,

321, 347, 375, 376

E1 E2 S E3

19, 30, 213 151, 206, 231 19, 25, 30, 151, 196,206, 213, 231, 385

25, 196, 385

E1 S E2 E3

171, 313, 367 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

19, 25, 30, 151, 196,206, 213, 231, 385

37, 79, 143, 218, 315,321, 347, 375, 376

S E1 E2 E3

– 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

– –

Cuadro 27: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 28: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –25, 196, 315, 385 37, 143, 321, 375 79, 218, 347, 376 –19, 30, 213, 231 151, 171, 206, 367 – –313 – – –

Cuadro 29: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 146: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.10 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

25, 196, 315, 385 37, 143, 321, 375 79, 218, 347, 376 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 213, 231 151, 171, 206, 367 – D

313 – – 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

Cuadro 30: Fase 2

E1 E2 E3 S

D D D D

25, 196, 315, 385 37, 143, 321, 375 79, 218, 347, 376 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 213, 231 151, 171, 206, 367 19, 30, 151, 171, 206,213, 231, 367

D

E1 S E2 E3

313 – 19, 30, 151, 171, 206,213, 231, 367

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

Cuadro 31: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 147: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D D D

25, 196, 315, 385 37, 143, 321, 375 79, 218, 347, 376 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 213, 231 151, 171, 206, 367 19, 30, 151, 171, 206,213, 231, 367

D

E1 S E2 E3

313 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

19, 30, 151, 171, 206,213, 231, 367

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

S E1 E2 E3

– 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

– –

Cuadro 32: Fase final

3.10.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 148: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

b1 b2 Sale Entra

– – Nada 385

385 – Nada 196

385 196 196 25

385 25 385 315

315 25

Nueva particion! Se cierra la particion p1 = {196, 385}25 321

315 321 315 143

143 321 321 37

143 37

Nueva particion! Se cierra la particion p2 = {25, 315, 321}37 375

143 375 143 79

79 375 375 347

79 347

Nueva particion! Se cierra la particion p3 = {37, 143, 375}79 376

376 347 347 218

376 218 376 30

30 218

Nueva particion! Se cierra la particion p4 = {79, 347, 376}30 213

213 218 213 19

19 218 218 231

19 231 231 206

19 206

Nueva particion! Se cierra la particion p5 = {30, 213, 218, 231}19 151

151 206 151 367

367 206 206 171

367 171 367 313

313 171

Nueva particion! Se cierra la particion p6 = {19, 151, 206, 367}171 Nada

313 – 313 Nada

Finaliza la ultima particion en p7 = {171, 313}

3.10.2. Salida final

p1 = {196, 385};

p2 = {25, 315, 321};

p3 = {37, 143, 375};

p4 = {79, 347, 376};

p5 = {30, 213, 218, 231};

p6 = {19, 151, 206, 367};

p7 = {171, 313}.

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 149: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Seleccion Natural con buffers de tamano 2 61

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 33: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 196, 385 –25, 315, 321 37, 143, 375 79, 347, 376 –30, 213, 218, 231 19, 151, 206, 367 – –171, 313 – – –

Cuadro 34: Fase 1

3.11.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.11.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.12. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D 196, 385 196, 38525, 315, 321 37, 143, 375 79, 347, 376 25, 37, 79, 143, 315,

321, 347, 375, 376

E1 E2 S E3

30, 213, 218, 231 19, 151, 206, 367 – 196, 385171, 313 – – 25, 37, 79, 143, 315,

321, 347, 375, 376

Cuadro 35: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 150: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.12 Seleccion Natural con buffers de tamano 2

E1 E2 E3 S

D D 196, 385 196, 38525, 315, 321 37, 143, 375 79, 347, 376 25, 37, 79, 143, 315,

321, 347, 375, 376

E1 E2 S E3

30, 213, 218, 231 19, 151, 206, 367 19, 30, 151, 196, 206,213, 218, 231, 367,385

196, 385

E1 S E2 E3

171, 313 – 19, 30, 151, 196, 206,213, 218, 231, 367,385

25, 37, 79, 143, 315,321, 347, 375, 376

Cuadro 36: Fase 3

E1 E2 E3 S

D D 196, 385 196, 38525, 315, 321 37, 143, 375 79, 347, 376 25, 37, 79, 143, 315,

321, 347, 375, 376

E1 E2 S E3

30, 213, 218, 231 19, 151, 206, 367 19, 30, 151, 196, 206,213, 218, 231, 367,385

196, 385

E1 S E2 E3

171, 313 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

19, 30, 151, 196, 206,213, 218, 231, 367,385

25, 37, 79, 143, 315,321, 347, 375, 376

S E1 E2 E3

– 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

– –

Cuadro 37: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 151: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Seleccion Natural con buffers de tamano 2 63

3.12.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 385

385 – – – Nada 196

385 196 – – 196 25

385 – 25 – Nada 315

385 315 25 – 315 321

385 321 25 – 321 143

385 – 25 143 385 Nada

25 143 – –

Nueva particion! Se cierra la particion p1 = {196, 315, 321, 385}25 37

37 143 – – 37 375

375 143 – – 143 79

375 – 79 – Nada 347

375 347 79 – 347 376

375 376 79 – 375 218

– 376 79 218 376 Nada

79 218 – –

Nueva particion! Se cierra la particion p2 = {25, 37, 143, 347, 375, 376}79 30

– 218 30 – Nada 213

213 218 30 – 213 19

– 218 30 19 218 Nada

30 19 – –

Nueva particion! Se cierra la particion p3 = {79, 213, 218}19 231

30 231 – – 30 206

206 231 – – 206 151

– 231 151 – Nada 367

367 231 151 – 231 171

367 – 151 171 367 Nada

151 171 – –

Nueva particion! Se cierra la particion p4 = {19, 30, 206, 231, 367}151 313

313 171 – – 171 Nada

313 – – – 313 Nada

Finaliza la ultima particion en p5 = {151, 171, 313}

3.12.2. Salida final

p1 = {196, 315, 321, 385};

p2 = {25, 37, 143, 347, 375, 376};

p3 = {79, 213, 218};

p4 = {19, 30, 206, 231, 367};

p5 = {151, 171, 313}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 152: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 38: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

196, 315, 321, 385 25, 37, 143, 347, 375,376

79, 213, 218 –

19, 30, 206, 231, 367 151, 171, 313 – –

Cuadro 39: Fase 1

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.13.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.13.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

3.14. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

E1 E2 E3 S

196, 315, 321, 385 25, 37, 143, 347, 375,376

79, 213, 218 25, 37, 79, 143, 196,213, 218, 315, 321,347, 375, 376, 385

E1 E2 S E3

19, 30, 206, 231, 367 151, 171, 313 – 25, 37, 79, 143, 196,213, 218, 315, 321,347, 375, 376, 385

Cuadro 40: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 153: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Seleccion de reemplazo con buffer de tamano 3 65

E1 E2 E3 S

196, 315, 321, 385 25, 37, 143, 347, 375,376

79, 213, 218 25, 37, 79, 143, 196,213, 218, 315, 321,347, 375, 376, 385

E1 E2 S E3

19, 30, 206, 231, 367 151, 171, 313 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

25, 37, 79, 143, 196,213, 218, 315, 321,347, 375, 376, 385

S E2 E1 E3

– – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 41: Fase final

3.14.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 154: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.15 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3

b1 b2 b3 Sale Entra

– – – Nada 385

385 – – Nada 196

385 196 – Nada 25

385 196 25 25 315

385 196 315 196 321

385 321 315 315 143

385 321 143 321 37

385 37 143 385 375

375 37 143

Nueva particion! Se cierra la particion p1 = {25, 196, 315, 321, 385}37 79

375 79 143 79 347

375 347 143 143 376

375 347 376 347 218

375 218 376 375 30

30 218 376 376 213

30 218 213

Nueva particion! Se cierra la particion p2 = {37, 79, 143, 347, 375, 376}30 19

19 218 213 213 231

19 218 231 218 206

19 206 231 231 151

19 206 151

Nueva particion! Se cierra la particion p3 = {30, 213, 218, 231}19 367

367 206 151 151 171

367 206 171 171 313

367 206 313 206 Nada

367 – 313 313 Nada

367 – – 367 Nada

Finaliza la ultima particion en p4 = {19, 151, 171, 206, 313, 367}

3.14.2. Salida final

p1 = {25, 196, 315, 321, 385};

p2 = {37, 79, 143, 347, 375, 376};

p3 = {30, 213, 218, 231};

p4 = {19, 151, 171, 206, 313, 367}.

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.15.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.15.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de las

Enrique P. Calot Algoritmos y Programacion II

Page 155: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.16 Seleccion Natural con buffers de tamano 3 67

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 42: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 25, 196, 315, 321, 385 37, 79, 143, 347, 375,376

30, 213, 218, 231 19, 151, 171, 206,313, 367

– –

Cuadro 43: Fase 1

cuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.16. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.16.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

D 25, 196, 315, 321, 385 37, 79, 143, 347, 375,376

25, 37, 79, 143, 196,315, 321, 347, 375,376, 385

E1 E2 S E3

30, 213, 218, 231 19, 151, 171, 206,313, 367

– 25, 37, 79, 143, 196,315, 321, 347, 375,376, 385

Cuadro 44: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 156: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.16 Seleccion Natural con buffers de tamano 3

E1 E2 E3 S

D 25, 196, 315, 321, 385 37, 79, 143, 347, 375,376

25, 37, 79, 143, 196,315, 321, 347, 375,376, 385

E1 E2 S E3

30, 213, 218, 231 19, 151, 171, 206,313, 367

19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

25, 37, 79, 143, 196,315, 321, 347, 375,376, 385

S E2 E1 E3

– – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 45: Fase final

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 385

385 – – – – – Nada 196

385 196 – – – – Nada 25

385 196 25 – – – 25 315

385 196 315 – – – 196 321

385 321 315 – – – 315 143

385 321 – 143 – – Nada 37

385 321 – 143 37 – Nada 375

385 321 375 143 37 – 321 79

385 – 375 143 37 79 375 Nada

385 – – 143 37 79 385 Nada

143 37 79 – – –

Nueva particion! Se cierra la particion p1 = {25, 196, 315, 321, 375, 385}37 347

143 347 79 – – – 79 376

143 347 376 – – – 143 218

218 347 376 – – – 218 30

– 347 376 30 – – Nada 213

– 347 376 30 213 – Nada 19

– 347 376 30 213 19 347 Nada

– – 376 30 213 19 376 Nada

30 213 19 – – –

Nueva particion! Se cierra la particion p2 = {37, 79, 143, 218, 347, 376}19 231

30 213 231 – – – 30 206

206 213 231 – – – 206 151

– 213 231 151 – – Nada 367

367 213 231 151 – – 213 171

367 – 231 151 171 – Nada 313

367 313 231 151 171 – 231 Nada

367 313 – 151 171 – 313 Nada

367 – – 151 171 – 367 Nada

151 171 – – – –

Nueva particion! Se cierra la particion p3 = {19, 30, 206, 213, 231, 313, 367}151 Nada

– 171 – – – – 171 Nada

Finaliza la ultima particion en p4 = {151, 171}Enrique P. Calot Algoritmos y Programacion II

Page 157: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 69

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 46: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

19, 30, 206, 213, 231,313, 367

151, 171 – –

Cuadro 47: Fase 1

3.16.2. Salida final

p1 = {25, 196, 315, 321, 375, 385};

p2 = {37, 79, 143, 218, 347, 376};

p3 = {19, 30, 206, 213, 231, 313, 367};

p4 = {151, 171}.

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.17.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.17.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.18. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 158: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.18 Seleccion Natural con buffers de tamano 4

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 206, 213, 231,313, 367

151, 171 – 25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

Cuadro 48: Fase 2

E1 E2 E3 S

D 25, 196, 315, 321,375, 385

37, 79, 143, 218, 347,376

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

E1 E2 S E3

19, 30, 206, 213, 231,313, 367

151, 171 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

25, 37, 79, 143, 196,218, 315, 321, 347,375, 376, 385

S E2 E1 E3

– – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 49: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 159: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 71

3.18.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 385

385 – – – – – – – Nada 196

385 196 – – – – – – Nada 25

385 196 25 – – – – – Nada 315

385 196 25 315 – – – – 25 321

385 196 321 315 – – – – 196 143

385 – 321 315 143 – – – Nada 37

385 – 321 315 143 37 – – Nada 375

385 375 321 315 143 37 – – 315 79

385 375 321 – 143 37 79 – Nada 347

385 375 321 347 143 37 79 – 321 376

385 375 376 347 143 37 79 – 347 218

385 375 376 – 143 37 79 218 375 Nada

385 – 376 – 143 37 79 218 376 Nada

385 – – – 143 37 79 218 385 Nada

143 37 79 218 – – – –

Nueva particion! Se cierra la particion p1 = {25, 196, 315, 321, 347, 375, 376, 385}37 30

143 – 79 218 30 – – – Nada 213

143 213 79 218 30 – – – 79 19

143 213 – 218 30 19 – – Nada 231

143 213 231 218 30 19 – – 143 206

206 213 231 218 30 19 – – 206 151

– 213 231 218 30 19 151 – Nada 367

367 213 231 218 30 19 151 – 213 171

367 – 231 218 30 19 151 171 218 Nada

367 – 231 – 30 19 151 171 231 Nada

367 – – – 30 19 151 171 367 Nada

30 19 151 171 – – – –

Nueva particion! Se cierra la particion p2 = {37, 79, 143, 206, 213, 218, 231, 367}19 313

30 313 151 171 – – – – 30 Nada

– 313 151 171 – – – – 151 Nada

– 313 – 171 – – – – 171 Nada

– 313 – – – – – – 313 Nada

Finaliza la ultima particion en p3 = {19, 30, 151, 171, 313}

3.18.2. Salida final

p1 = {25, 196, 315, 321, 347, 375, 376, 385};

p2 = {37, 79, 143, 206, 213, 218, 231, 367};

p3 = {19, 30, 151, 171, 313}.

3.19. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 160: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.20 Seleccion de reemplazo con buffer de tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 50: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

25, 196, 315, 321,347, 375, 376, 385

37, 79, 143, 206, 213,218, 231, 367

19, 30, 151, 171, 313 –

Cuadro 51: Fase 1

3.19.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.19.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.20. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.20.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 161: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.20 Seleccion de reemplazo con buffer de tamano 5 73

E1 E2 E3 S

25, 196, 315, 321,347, 375, 376, 385

37, 79, 143, 206, 213,218, 231, 367

19, 30, 151, 171, 313 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E2 E3 E1

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 52: Fase final

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 385

385 – – – – Nada 196

385 196 – – – Nada 25

385 196 25 – – Nada 315

385 196 25 315 – Nada 321

385 196 25 315 321 25 143

385 196 143 315 321 143 37

385 196 37 315 321 196 375

385 375 37 315 321 315 79

385 375 37 79 321 321 347

385 375 37 79 347 347 376

385 375 37 79 376 375 218

385 218 37 79 376 376 30

385 218 37 79 30 385 213

213 218 37 79 30

Nueva particion! Se cierra la particion p1 =

{25, 143, 196, 315, 321, 347, 375, 376, 385}30 19

213 218 37 79 19 37 231

213 218 231 79 19 79 206

213 218 231 206 19 206 151

213 218 231 151 19 213 367

367 218 231 151 19 218 171

367 171 231 151 19 231 313

367 171 313 151 19 313 Nada

367 171 – 151 19 367 Nada

– 171 – 151 19

Nueva particion! Se cierra la particion p2 =

{30, 37, 79, 206, 213, 218, 231, 313, 367}19 Nada

– 171 – 151 – 151 Nada

– 171 – – – 171 Nada

Finaliza la ultima particion en p3 = {19, 151, 171}

3.20.2. Salida final

p1 = {25, 143, 196, 315, 321, 347, 375, 376, 385};

p2 = {30, 37, 79, 206, 213, 218, 231, 313, 367};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 162: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.21 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 53: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

25, 143, 196, 315,321, 347, 375, 376,385

30, 37, 79, 206, 213,218, 231, 313, 367

19, 151, 171 –

Cuadro 54: Fase 1

p3 = {19, 151, 171}.

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.21.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.21.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.22. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.22.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 163: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Seleccion Natural con buffers de tamano 5 75

E1 E2 E3 S

25, 143, 196, 315,321, 347, 375, 376,385

30, 37, 79, 206, 213,218, 231, 313, 367

19, 151, 171 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E2 E3 E1

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 55: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 385

385 – – – – – – – – – Nada 196

385 196 – – – – – – – – Nada 25

385 196 25 – – – – – – – Nada 315

385 196 25 315 – – – – – – Nada 321

385 196 25 315 321 – – – – – 25 143

385 196 143 315 321 – – – – – 143 37

385 196 – 315 321 37 – – – – Nada 375

385 196 375 315 321 37 – – – – 196 79

385 – 375 315 321 37 79 – – – Nada 347

385 347 375 315 321 37 79 – – – 315 376

385 347 375 376 321 37 79 – – – 321 218

385 347 375 376 – 37 79 218 – – Nada 30

385 347 375 376 – 37 79 218 30 – Nada 213

385 347 375 376 – 37 79 218 30 213 347 Nada

385 – 375 376 – 37 79 218 30 213 375 Nada

385 – – 376 – 37 79 218 30 213 376 Nada

385 – – – – 37 79 218 30 213 385 Nada

37 79 218 30 213 – – – – –

Nueva particion! Se cierra la particion p1 = {25, 143, 196, 315, 321, 347, 375, 376, 385}30 19

37 79 218 – 213 19 – – – – Nada 231

37 79 218 231 213 19 – – – – 37 206

206 79 218 231 213 19 – – – – 79 151

206 151 218 231 213 19 – – – – 151 367

206 367 218 231 213 19 – – – – 206 171

– 367 218 231 213 19 171 – – – Nada 313

313 367 218 231 213 19 171 – – – 213 Nada

313 367 218 231 – 19 171 – – – 218 Nada

313 367 – 231 – 19 171 – – – 231 Nada

313 367 – – – 19 171 – – – 313 Nada

– 367 – – – 19 171 – – – 367 Nada

19 171 – – – – – – – –

Nueva particion! Se cierra la particion p2 = {30, 37, 79, 151, 206, 213, 218, 231, 313, 367}19 Nada

– 171 – – – – – – – – 171 Nada

Finaliza la ultima particion en p3 = {19, 171}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 164: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.23 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 56: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

25, 143, 196, 315,321, 347, 375, 376,385

30, 37, 79, 151, 206,213, 218, 231, 313,367

19, 171 –

Cuadro 57: Fase 1

3.22.2. Salida final

p1 = {25, 143, 196, 315, 321, 347, 375, 376, 385};

p2 = {30, 37, 79, 151, 206, 213, 218, 231, 313, 367};

p3 = {19, 171}.

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.23.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.23.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.24. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.24.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 165: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.24 Seleccion de reemplazo con buffer de tamano 6 77

E1 E2 E3 S

25, 143, 196, 315,321, 347, 375, 376,385

30, 37, 79, 151, 206,213, 218, 231, 313,367

19, 171 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E2 E3 E1

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 58: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 385

385 – – – – – Nada 196

385 196 – – – – Nada 25

385 196 25 – – – Nada 315

385 196 25 315 – – Nada 321

385 196 25 315 321 – Nada 143

385 196 25 315 321 143 25 37

385 196 37 315 321 143 37 375

385 196 375 315 321 143 143 79

385 196 375 315 321 79 196 347

385 347 375 315 321 79 315 376

385 347 375 376 321 79 321 218

385 347 375 376 218 79 347 30

385 30 375 376 218 79 375 213

385 30 213 376 218 79 376 19

385 30 213 19 218 79 385 231

231 30 213 19 218 79

Nueva particion! Se cierra la particion p1 =

{25, 37, 143, 196, 315, 321, 347, 375, 376, 385}19 206

231 30 213 206 218 79 30 151

231 151 213 206 218 79 79 367

231 151 213 206 218 367 151 171

231 171 213 206 218 367 171 313

231 313 213 206 218 367 206 Nada

231 313 213 – 218 367 213 Nada

231 313 – – 218 367 218 Nada

231 313 – – – 367 231 Nada

– 313 – – – 367 313 Nada

– – – – – 367 367 Nada

Finaliza la ultima particion en p2 =

{19, 30, 79, 151, 171, 206, 213, 218, 231, 313, 367}

3.24.2. Salida final

p1 = {25, 37, 143, 196, 315, 321, 347, 375, 376, 385};

p2 = {19, 30, 79, 151, 171, 206, 213, 218, 231, 313, 367}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 166: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.25 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 59: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 25, 37, 143, 196, 315,321, 347, 375, 376,385

19, 30, 79, 151, 171,206, 213, 218, 231,313, 367

Cuadro 60: Fase 1

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.25.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.25.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.26. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.26.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 167: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.26 Seleccion Natural con buffers de tamano 6 79

E1 E2 E3 S

D 25, 37, 143, 196, 315,321, 347, 375, 376,385

19, 30, 79, 151, 171,206, 213, 218, 231,313, 367

19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E2 E3 E1

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 61: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 385

385 – – – – – – – – – – – Nada 196

385 196 – – – – – – – – – – Nada 25

385 196 25 – – – – – – – – – Nada 315

385 196 25 315 – – – – – – – – Nada 321

385 196 25 315 321 – – – – – – – Nada 143

385 196 25 315 321 143 – – – – – – 25 37

385 196 37 315 321 143 – – – – – – 37 375

385 196 375 315 321 143 – – – – – – 143 79

385 196 375 315 321 – 79 – – – – – Nada 347

385 196 375 315 321 347 79 – – – – – 196 376

385 376 375 315 321 347 79 – – – – – 315 218

385 376 375 – 321 347 79 218 – – – – Nada 30

385 376 375 – 321 347 79 218 30 – – – Nada 213

385 376 375 – 321 347 79 218 30 213 – – Nada 19

385 376 375 – 321 347 79 218 30 213 19 – Nada 231

385 376 375 – 321 347 79 218 30 213 19 231 321 Nada

385 376 375 – – 347 79 218 30 213 19 231 347 Nada

385 376 375 – – – 79 218 30 213 19 231 375 Nada

385 376 – – – – 79 218 30 213 19 231 376 Nada

385 – – – – – 79 218 30 213 19 231 385 Nada

79 218 30 213 19 231 – – – – – –

Nueva particion! Se cierra la particion p1 = {25, 37, 143, 196, 315, 321, 347, 375, 376, 385}19 206

79 218 30 213 206 231 – – – – – – 30 151

79 218 151 213 206 231 – – – – – – 79 367

367 218 151 213 206 231 – – – – – – 151 171

367 218 171 213 206 231 – – – – – – 171 313

367 218 313 213 206 231 – – – – – – 206 Nada

367 218 313 213 – 231 – – – – – – 213 Nada

367 218 313 – – 231 – – – – – – 218 Nada

367 – 313 – – 231 – – – – – – 231 Nada

367 – 313 – – – – – – – – – 313 Nada

367 – – – – – – – – – – – 367 Nada

Finaliza la ultima particion en p2 = {19, 30, 79, 151, 171, 206, 213, 218, 231, 313, 367}

3.26.2. Salida final

p1 = {25, 37, 143, 196, 315, 321, 347, 375, 376, 385};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 168: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.27 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 62: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 25, 37, 143, 196, 315,321, 347, 375, 376,385

19, 30, 79, 151, 171,206, 213, 218, 231,313, 367

Cuadro 63: Fase 1

p2 = {19, 30, 79, 151, 171, 206, 213, 218, 231, 313, 367}.

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.27.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.27.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 169: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.28 Bubble Sort ascendente 81

E1 E2 E3 S

D 25, 37, 143, 196, 315,321, 347, 375, 376,385

19, 30, 79, 151, 171,206, 213, 218, 231,313, 367

19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

S E2 E3 E1

– – – 19, 25, 30, 37, 79,143, 151, 171, 196,206, 213, 218, 231,313, 315, 321, 347,367, 375, 376, 385

Cuadro 64: Fase final

3.28. Bubble Sort ascendente

3.28.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 20/20

1 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 385 15/19

2 25 196 315 143 37 321 79 347 375 218 30 213 19 231 206 151 367 171 313 376 385 13/18

3 25 196 143 37 315 79 321 347 218 30 213 19 231 206 151 367 171 313 375 376 385 12/17

4 25 143 37 196 79 315 321 218 30 213 19 231 206 151 347 171 313 367 375 376 385 11/16

5 25 37 143 79 196 315 218 30 213 19 231 206 151 321 171 313 347 367 375 376 385 10/15

6 25 37 79 143 196 218 30 213 19 231 206 151 315 171 313 321 347 367 375 376 385 7/14

7 25 37 79 143 196 30 213 19 218 206 151 231 171 313 315 321 347 367 375 376 385 5/13

8 25 37 79 143 30 196 19 213 206 151 218 171 231 313 315 321 347 367 375 376 385 5/12

9 25 37 79 30 143 19 196 206 151 213 171 218 231 313 315 321 347 367 375 376 385 4/11

10 25 37 30 79 19 143 196 151 206 171 213 218 231 313 315 321 347 367 375 376 385 4/10

11 25 30 37 19 79 143 151 196 171 206 213 218 231 313 315 321 347 367 375 376 385 2/9

12 25 30 19 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 1/8

13 25 19 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 1/7

14 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/6

15 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/5

16 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/4

17 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/3

18 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/2

19 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/1

20 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 170: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.29 Bubble Sort descendente

3.29. Bubble Sort descendente

3.29.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 17/20

1 385 196 315 321 143 37 375 79 347 376 218 30 213 25 231 206 151 367 171 313 19 14/19

2 385 315 321 196 143 375 79 347 376 218 37 213 30 231 206 151 367 171 313 25 19 12/18

3 385 321 315 196 375 143 347 376 218 79 213 37 231 206 151 367 171 313 30 25 19 11/17

4 385 321 315 375 196 347 376 218 143 213 79 231 206 151 367 171 313 37 30 25 19 11/16

5 385 321 375 315 347 376 218 196 213 143 231 206 151 367 171 313 79 37 30 25 19 10/15

6 385 375 321 347 376 315 218 213 196 231 206 151 367 171 313 143 79 37 30 25 19 7/14

7 385 375 347 376 321 315 218 213 231 206 196 367 171 313 151 143 79 37 30 25 19 4/13

8 385 375 376 347 321 315 218 231 213 206 367 196 313 171 151 143 79 37 30 25 19 4/12

9 385 376 375 347 321 315 231 218 213 367 206 313 196 171 151 143 79 37 30 25 19 2/11

10 385 376 375 347 321 315 231 218 367 213 313 206 196 171 151 143 79 37 30 25 19 2/10

11 385 376 375 347 321 315 231 367 218 313 213 206 196 171 151 143 79 37 30 25 19 2/9

12 385 376 375 347 321 315 367 231 313 218 213 206 196 171 151 143 79 37 30 25 19 2/8

13 385 376 375 347 321 367 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 1/7

14 385 376 375 347 367 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 1/6

15 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/5

16 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/4

17 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/3

18 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/2

19 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/1

20 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 171: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.30 Bilateral Bubble Sort ascendente 83

3.30. Bilateral Bubble Sort ascendente

3.30.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 20/20

1 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 385 16/20

2 19 196 25 315 321 143 37 375 79 347 376 218 30 213 151 231 206 171 367 313 385 14/18

3 19 25 196 315 143 37 321 79 347 375 218 30 213 151 231 206 171 367 313 376 385 13/18

4 19 25 30 196 315 143 37 321 79 347 375 218 151 213 171 231 206 313 367 376 385 11/16

5 19 25 30 196 143 37 315 79 321 347 218 151 213 171 231 206 313 367 375 376 385 8/16

6 19 25 30 37 196 143 79 315 151 321 347 218 171 213 206 231 313 367 375 376 385 9/14

7 19 25 30 37 143 79 196 151 315 321 218 171 213 206 231 313 347 367 375 376 385 6/14

8 19 25 30 37 79 143 151 196 171 315 321 218 206 213 231 313 347 367 375 376 385 6/12

9 19 25 30 37 79 143 151 171 196 315 218 206 213 231 313 321 347 367 375 376 385 2/12

10 19 25 30 37 79 143 151 171 196 206 315 218 213 231 313 321 347 367 375 376 385 4/10

11 19 25 30 37 79 143 151 171 196 206 218 213 231 313 315 321 347 367 375 376 385 1/10

12 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/8

13 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/8

14 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/6

15 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/6

16 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/4

17 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/4

18 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/2

19 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/2

20 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 172: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.31 Bilateral Bubble Sort descendente

3.31. Bilateral Bubble Sort descendente

3.31.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 17/20

1 385 196 315 321 143 37 375 79 347 376 218 30 213 25 231 206 151 367 171 313 19 16/20

2 385 376 196 315 321 143 37 375 79 347 367 218 30 213 25 231 206 151 313 171 19 13/18

3 385 376 315 321 196 143 375 79 347 367 218 37 213 30 231 206 151 313 171 25 19 13/18

4 385 376 375 315 321 196 143 367 79 347 313 218 37 213 30 231 206 151 171 25 19 10/16

5 385 376 375 321 315 196 367 143 347 313 218 79 213 37 231 206 151 171 30 25 19 9/16

6 385 376 375 367 321 315 196 347 143 313 231 218 79 213 37 206 171 151 30 25 19 8/14

7 385 376 375 367 321 315 347 196 313 231 218 143 213 79 206 171 151 37 30 25 19 5/14

8 385 376 375 367 347 321 315 313 196 231 218 213 143 206 79 171 151 37 30 25 19 6/12

9 385 376 375 367 347 321 315 313 231 218 213 196 206 143 171 151 79 37 30 25 19 2/12

10 385 376 375 367 347 321 315 313 231 218 213 206 196 171 143 151 79 37 30 25 19 1/10

11 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/10

12 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/8

13 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/8

14 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/6

15 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/6

16 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/4

17 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/4

18 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/2

19 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/2

20 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 173: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.32 Selection Sort ascendente 85

3.32. Selection Sort ascendente

3.32.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 1/20

1 19 196 25 315 321 143 37 375 79 347 376 218 30 213 385 231 206 151 367 171 313 1/19

2 19 25 196 315 321 143 37 375 79 347 376 218 30 213 385 231 206 151 367 171 313 1/18

3 19 25 30 315 321 143 37 375 79 347 376 218 196 213 385 231 206 151 367 171 313 1/17

4 19 25 30 37 321 143 315 375 79 347 376 218 196 213 385 231 206 151 367 171 313 1/16

5 19 25 30 37 79 143 315 375 321 347 376 218 196 213 385 231 206 151 367 171 313 1/15

6 19 25 30 37 79 143 315 375 321 347 376 218 196 213 385 231 206 151 367 171 313 1/14

7 19 25 30 37 79 143 151 375 321 347 376 218 196 213 385 231 206 315 367 171 313 1/13

8 19 25 30 37 79 143 151 171 321 347 376 218 196 213 385 231 206 315 367 375 313 1/12

9 19 25 30 37 79 143 151 171 196 347 376 218 321 213 385 231 206 315 367 375 313 1/11

10 19 25 30 37 79 143 151 171 196 206 376 218 321 213 385 231 347 315 367 375 313 1/10

11 19 25 30 37 79 143 151 171 196 206 213 218 321 376 385 231 347 315 367 375 313 1/9

12 19 25 30 37 79 143 151 171 196 206 213 218 321 376 385 231 347 315 367 375 313 1/8

13 19 25 30 37 79 143 151 171 196 206 213 218 231 376 385 321 347 315 367 375 313 1/7

14 19 25 30 37 79 143 151 171 196 206 213 218 231 313 385 321 347 315 367 375 376 1/6

15 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 385 367 375 376 1/5

16 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 385 367 375 376 1/4

17 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 385 367 375 376 1/3

18 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 385 375 376 1/2

19 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 385 376 1/1

20 19 25 30 37 79 143 151 171 196 206 213 218 231 313 315 321 347 367 375 376 385 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 174: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.33 Selection Sort descendente

3.33. Selection Sort descendente

3.33.1. Desarrollo

0 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 1/20

1 385 196 25 315 321 143 37 375 79 347 376 218 30 213 19 231 206 151 367 171 313 1/19

2 385 376 25 315 321 143 37 375 79 347 196 218 30 213 19 231 206 151 367 171 313 1/18

3 385 376 375 315 321 143 37 25 79 347 196 218 30 213 19 231 206 151 367 171 313 1/17

4 385 376 375 367 321 143 37 25 79 347 196 218 30 213 19 231 206 151 315 171 313 1/16

5 385 376 375 367 347 143 37 25 79 321 196 218 30 213 19 231 206 151 315 171 313 1/15

6 385 376 375 367 347 321 37 25 79 143 196 218 30 213 19 231 206 151 315 171 313 1/14

7 385 376 375 367 347 321 315 25 79 143 196 218 30 213 19 231 206 151 37 171 313 1/13

8 385 376 375 367 347 321 315 313 79 143 196 218 30 213 19 231 206 151 37 171 25 1/12

9 385 376 375 367 347 321 315 313 231 143 196 218 30 213 19 79 206 151 37 171 25 1/11

10 385 376 375 367 347 321 315 313 231 218 196 143 30 213 19 79 206 151 37 171 25 1/10

11 385 376 375 367 347 321 315 313 231 218 213 143 30 196 19 79 206 151 37 171 25 1/9

12 385 376 375 367 347 321 315 313 231 218 213 206 30 196 19 79 143 151 37 171 25 1/8

13 385 376 375 367 347 321 315 313 231 218 213 206 196 30 19 79 143 151 37 171 25 1/7

14 385 376 375 367 347 321 315 313 231 218 213 206 196 171 19 79 143 151 37 30 25 1/6

15 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 79 143 19 37 30 25 1/5

16 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 19 37 30 25 1/4

17 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 19 37 30 25 1/3

18 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 19 30 25 1/2

19 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 19 25 1/1

20 385 376 375 367 347 321 315 313 231 218 213 206 196 171 151 143 79 37 30 25 19 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 175: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-07-05

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

385, 196, 25, 315, 321†, 143, 37, 375†, 79†, 347, 376†, 218, 30, 213, 19, 231†, 206,

151†, 367, 171, 313†

Se pide:

a. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Heap Sort en orden ascendente(hacer al menos 1 swapdown).

b. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

218, 213†, 313†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {25, 196, 315, 321, 385}; p2 = {37, 143, 375}; . . . ; p6 = {151, 206}; p7 = {171, 313, 367}.

d. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

e. ¿Cual es el peor caso posible para ser ordenado ascendentemente con el algoritmo de Quick Sort? Suponien-do que existen 40000 elementos, ¿cual es el maximo de ejecuciones recursivas anidadas que pueden llegara ser ejecutadas en ese caso?

Page 176: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 12 de Julio de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-07-12

*[email protected]

Page 177: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. c. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4. c. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5. c. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6. d. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 112.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.7. e. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Resolucion explayada 13

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2. Quick Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 453.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 463.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 463.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 463.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.7. Merge Polifasico completo con particiones formadas de 1 elemento . . . . . . . . . . . . . 463.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 483.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.8. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 483.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 483.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.9. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 503.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 503.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.10. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 553.10.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 55

Enrique P. Calot Algoritmos y Programacion II

Page 178: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.10.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.11. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 55

3.11.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.11.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 613.12.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 623.12.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.13. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.13.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.13.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 653.14.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 653.14.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.15. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 663.15.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.15.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 673.16.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 673.16.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.17. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.17.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.17.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 703.18.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 703.18.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.19. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 703.19.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.19.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 723.20.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 733.20.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.21. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.21.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.21.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 753.22.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 753.22.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.23. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 783.24.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.24.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.25. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 783.25.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.25.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 803.26.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 803.26.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 179: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 823.28.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 823.28.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.34. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883.34.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Enrique P. Calot Algoritmos y Programacion II

Page 180: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

366, 225, 108, 233, 59†, 68, 98, 344†, 91†, 254, 353†, 65, 196, 198, 48,

179†, 128, 104†, 205, 106, 281†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

b. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

196, 179†, 205†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero), Heap Sort en orden ascen-dente (hacer al menos 1 swapdown) y Quick Sort (hasta haber completado dos niveles de recursivi-dad).

d. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

e. ¿por que existe el algoritmo de seleccion natural con un buffer auxiliar y no se hace seleccion dereemplazo con un buffer que mide el doble (tamano del original + tamano del auxiliar)?

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 181: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 b. Ejercicio de B-trees

2.1.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 366

366 – – – – Nada 225

366 225 – – – Nada 108

366 225 108 – – Nada 233

366 225 108 233 – Nada 59

366 225 108 233 59 59 68

366 225 108 233 68 68 98

366 225 108 233 98 98 344

366 225 108 233 344 108 91

366 225 91 233 344 225 254

366 254 91 233 344 233 353

366 254 91 353 344 254 65

366 65 91 353 344 344 196

366 65 91 353 196 353 198

366 65 91 198 196 366 48

48 65 91 198 196

Nueva particion! Se cierra la particion p1 =

{59, 68, 98, 108, 225, 233, 254, 344, 353, 366}48 179

179 65 91 198 196 65 128

179 128 91 198 196 91 104

179 128 104 198 196 104 205

179 128 205 198 196 128 106

179 106 205 198 196 179 281

281 106 205 198 196 196 Nada

281 106 205 198 – 198 Nada

281 106 205 – – 205 Nada

281 106 – – – 281 Nada

– 106 – – –

Nueva particion! Se cierra la particion p2 =

{48, 65, 91, 104, 128, 179, 196, 198, 205, 281}106 Nada

Finaliza la ultima particion en p3 = {106}

2.1.2. Salida final

p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366};

p2 = {48, 65, 91, 104, 128, 179, 196, 198, 205, 281};

p3 = {106}.

2.2. b. Ejercicio de B-trees

Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

196, 179†, 205†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

Enrique P. Calot Algoritmos y Programacion II

Page 182: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.2 b. Ejercicio de B-trees 7

2.2.1. Insercion

•225•

×59×108× ×233×366×

Insercion de 5 elementos: 366, 225, 108, 233, 59

•225•

×59×68×98×108× ×233×344×366×

Insercion de 3 elementos: 68, 98, 344

•91•225•

×59×68× ×98×108× ×233×344×366×

Insercion de 1 elemento: 91

•91•225•344•

×59×68× ×98×108× ×233×254× ×353×366×

Insercion de 2 elementos: 254, 353

•91•179•225•344•

×48×59×65×68× ×98×108× ×196×198× ×233×254× ×353×366×

Insercion de 5 elementos: 65, 196, 198, 48, 179

•91•179•225•344•

×48×59×65×68× ×98×104×108×128× ×196×198× ×233×254× ×353×366×

Insercion de 2 elementos: 128, 104

•179•

•91•106• •225•344•

×48×59×65×68× ×98×104× ×108×128× ×196×198×205× ×233×254×281× ×353×366×

Insercion de 3 elementos: 205, 106, 281

2.2.2. Eliminacion

•91•106•225•344•

×48×59×65×68× ×98×104× ×108×128×198×205× ×233×254×281× ×353×366×

Eliminacion de 2 elementos: 196, 179

•91•106•225•344•

×48×59×65×68× ×98×104× ×108×128×198× ×233×254×281× ×353×366×

Eliminacion de 1 elemento: 205

Algoritmos y Programacion II Facultad de Ingenierıa

Page 183: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.3 c. Radix Sort

2.3. c. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

2.3.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Paso 0 Paso 1 Paso 2 Paso 3366 091 104 048225 281 205 059108 233 106 065233 353 108 068059 344 225 091068 254 128 098098 104 233 104344 225 344 106091 065 048 108254 205 353 128353 366 254 179065 196 059 196196 106 065 198198 108 366 205048 068 068 225179 098 179 233128 198 281 254104 048 091 281205 128 196 344106 059 098 353281 179 198 366

2.4. c. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

2.4.1. Desarrollo

Paso 1 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281

Paso 2 281 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 366

Paso 3 104 225 108 233 59 68 98 106 91 254 205 65 196 198 48 179 128 281 353 344

Final 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366

2.5. c. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

Enrique P. Calot Algoritmos y Programacion II

Page 184: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 c. Heap Sort 9

2.5.1. Arbol inicial

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281

Arbol inicial y su vector asociadoHeapfy paso 0

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353

65 196 198 48 179 128 104 205 106 281

Heapfy paso 1

366

225 108

233 59 68 98

344 205 281 353 65 196 198 48

179 128 104 91 106 254

Vector:

366 225 108 233 59 68 98 344 205 281 353

65 196 198 48 179 128 104 91 106 254

Heapfy paso 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 185: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.5 c. Heap Sort

366

225 108

344 353 196 198

233 205 281 59 65 68 98 48

179 128 104 91 106 254

Vector:

366 225 108 344 353 196 198 233 205 281 59

65 68 98 48 179 128 104 91 106 254

Heapfy paso 3

366

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 225

Vector:

366 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 225

Heapfy paso 4

366

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 225

Vector:

366 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 225

Enrique P. Calot Algoritmos y Programacion II

Page 186: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 d. Merge Polifasico 11

225

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 366

Vector:

225 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 366

Paso 1: ultimo congelado pedido antes del corte

2.6. d. Merge Polifasico

Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones orde-nadas tomadas del lote de datos.

2.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.7. e. Pregunta teorica

¿por que existe el algoritmo de seleccion natural con un buffer auxiliar y no se hace seleccion dereemplazo con un buffer que mide el doble (tamano del original + tamano del auxiliar)?

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 187: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.7 e. Pregunta teorica

E1 E2 E3 S

D D D –D D D –D D D –D 366 225 –108 233 59 –68 98 344 –91 254 353 –65 196 – –198 48 – –179 128 – –104 205 – –106 – – –281 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 – D

198 48 – D

179 128 – D

104 205 – 225, 366106 – – 59, 108, 233281 – – 68, 98, 344– – – 91, 254, 353

Cuadro 3: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 188: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3 Resolucion explayada 13

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 65, 196 D

198 48 48, 198 D

179 128 128, 179 D

104 205 104, 205, 225, 366 225, 366

E1 S E2 E3

106 – 65, 196 59, 108, 233281 – 48, 198 68, 98, 344– – 128, 179 91, 254, 353– – 104, 205, 225, 366 –

Cuadro 4: Fase 3

2.7.1. Respuesta

Porque el buffer auxiliar esta en disco. La memoria interna es mas cara que la memoria en disco porlo que justifica incrementarla.

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 189: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 3.2 Quick Sort completo

Paso 0 Paso 1 Paso 2 Paso 3366 059 098 366225 179 198 353108 108 196 344233 068 091 281059 098 281 254068 198 179 233098 048 068 225344 128 366 205091 366 065 198254 196 059 196353 106 254 179065 225 353 128196 065 048 108198 205 344 106048 344 233 104179 254 128 098128 104 225 091104 233 108 068205 353 106 065106 091 205 059281 281 104 048

3.2. Quick Sort completo

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

3.2.1. Desarrollo

Paso 1 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281

Paso 2 281 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 366

Paso 3 104 225 108 233 59 68 98 106 91 254 205 65 196 198 48 179 128 281 353 344

Paso 4 98 48 65 91 59 68 104 106 233 254 205 108 196 198 225 179 128 344 353

Paso 5 68 48 65 91 59 98 106 233 254 205 108 196 198 225 179 128

Paso 6 59 48 65 68 91 179 128 205 108 196 198 225 233 254

Paso 7 48 59 65 108 128 179 205 196 198 225

Paso 8 108 128 198 196 205 225

Final 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366

Enrique P. Calot Algoritmos y Programacion II

Page 190: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 15

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281

Arbol inicial y su vector asociadoHeapfy paso 0

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353

65 196 198 48 179 128 104 205 106 281

Heapfy paso 1

366

225 108

233 59 68 98

344 205 281 353 65 196 198 48

179 128 104 91 106 254

Vector:

366 225 108 233 59 68 98 344 205 281 353

65 196 198 48 179 128 104 91 106 254

Algoritmos y Programacion II Facultad de Ingenierıa

Page 191: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

Heapfy paso 2

366

225 108

344 353 196 198

233 205 281 59 65 68 98 48

179 128 104 91 106 254

Vector:

366 225 108 344 353 196 198 233 205 281 59

65 68 98 48 179 128 104 91 106 254

Heapfy paso 3

366

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 225

Vector:

366 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 225

Heapfy paso 4

366

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 225

Vector:

366 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 225

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 192: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

225

353 198

344 281 196 108

233 205 254 59 65 68 98 48

179 128 104 91 106 366

Vector:

225 353 198 344 281 196 108 233 205 254 59

65 68 98 48 179 128 104 91 106 366

Swapdown

353

344 198

233 281 196 108

225 205 254 59 65 68 98 48

179 128 104 91 106 366

Vector:

353 344 198 233 281 196 108 225 205 254 59

65 68 98 48 179 128 104 91 106 366

Intercambio y congelamiento

106

344 198

233 281 196 108

225 205 254 59 65 68 98 48

179 128 104 91 353 366

Vector:

106 344 198 233 281 196 108 225 205 254 59

65 68 98 48 179 128 104 91 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 193: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

344

281 198

233 254 196 108

225 205 106 59 65 68 98 48

179 128 104 91 353 366

Vector:

344 281 198 233 254 196 108 225 205 106 59

65 68 98 48 179 128 104 91 353 366

Intercambio y congelamiento

91

281 198

233 254 196 108

225 205 106 59 65 68 98 48

179 128 104 344 353 366

Vector:

91 281 198 233 254 196 108 225 205 106 59

65 68 98 48 179 128 104 344 353 366

Swapdown

281

254 198

233 106 196 108

225 205 91 59 65 68 98 48

179 128 104 344 353 366

Vector:

281 254 198 233 106 196 108 225 205 91 59

65 68 98 48 179 128 104 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 194: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

104

254 198

233 106 196 108

225 205 91 59 65 68 98 48

179 128 281 344 353 366

Vector:

104 254 198 233 106 196 108 225 205 91 59

65 68 98 48 179 128 281 344 353 366

Swapdown

254

233 198

225 106 196 108

179 205 91 59 65 68 98 48

104 128 281 344 353 366

Vector:

254 233 198 225 106 196 108 179 205 91 59

65 68 98 48 104 128 281 344 353 366

Intercambio y congelamiento

128

233 198

225 106 196 108

179 205 91 59 65 68 98 48

104 254 281 344 353 366

Vector:

128 233 198 225 106 196 108 179 205 91 59

65 68 98 48 104 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 195: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

233

225 198

205 106 196 108

179 128 91 59 65 68 98 48

104 254 281 344 353 366

Vector:

233 225 198 205 106 196 108 179 128 91 59

65 68 98 48 104 254 281 344 353 366

Intercambio y congelamiento

104

225 198

205 106 196 108

179 128 91 59 65 68 98 48

233 254 281 344 353 366

Vector:

104 225 198 205 106 196 108 179 128 91 59

65 68 98 48 233 254 281 344 353 366

Swapdown

225

205 198

179 106 196 108

104 128 91 59 65 68 98 48

233 254 281 344 353 366

Vector:

225 205 198 179 106 196 108 104 128 91 59

65 68 98 48 233 254 281 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 196: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

48

205 198

179 106 196 108

104 128 91 59 65 68 98 225

233 254 281 344 353 366

Vector:

48 205 198 179 106 196 108 104 128 91 59

65 68 98 225 233 254 281 344 353 366

Swapdown

205

179 198

128 106 196 108

104 48 91 59 65 68 98 225

233 254 281 344 353 366

Vector:

205 179 198 128 106 196 108 104 48 91 59

65 68 98 225 233 254 281 344 353 366

Intercambio y congelamiento

98

179 198

128 106 196 108

104 48 91 59 65 68 205 225

233 254 281 344 353 366

Vector:

98 179 198 128 106 196 108 104 48 91 59

65 68 205 225 233 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 197: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

198

179 196

128 106 98 108

104 48 91 59 65 68 205 225

233 254 281 344 353 366

Vector:

198 179 196 128 106 98 108 104 48 91 59

65 68 205 225 233 254 281 344 353 366

Intercambio y congelamiento

68

179 196

128 106 98 108

104 48 91 59 65 198 205 225

233 254 281 344 353 366

Vector:

68 179 196 128 106 98 108 104 48 91 59

65 198 205 225 233 254 281 344 353 366

Swapdown

196

179 108

128 106 98 68

104 48 91 59 65 198 205 225

233 254 281 344 353 366

Vector:

196 179 108 128 106 98 68 104 48 91 59

65 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 198: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

65

179 108

128 106 98 68

104 48 91 59 196 198 205 225

233 254 281 344 353 366

Vector:

65 179 108 128 106 98 68 104 48 91 59

196 198 205 225 233 254 281 344 353 366

Swapdown

179

128 108

104 106 98 68

65 48 91 59 196 198 205 225

233 254 281 344 353 366

Vector:

179 128 108 104 106 98 68 65 48 91 59

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

59

128 108

104 106 98 68

65 48 91 179 196 198 205 225

233 254 281 344 353 366

Vector:

59 128 108 104 106 98 68 65 48 91 179

196 198 205 225 233 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 199: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

128

106 108

104 91 98 68

65 48 59 179 196 198 205 225

233 254 281 344 353 366

Vector:

128 106 108 104 91 98 68 65 48 59 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

59

106 108

104 91 98 68

65 48 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

59 106 108 104 91 98 68 65 48 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

108

106 98

104 91 59 68

65 48 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

108 106 98 104 91 59 68 65 48 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 200: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

48

106 98

104 91 59 68

65 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 106 98 104 91 59 68 65 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

106

104 98

65 91 59 68

48 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

106 104 98 65 91 59 68 48 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

48

104 98

65 91 59 68

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 104 98 65 91 59 68 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 201: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

104

91 98

65 48 59 68

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

104 91 98 65 48 59 68 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

68

91 98

65 48 59 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

68 91 98 65 48 59 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

98

91 68

65 48 59 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

98 91 68 65 48 59 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 202: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

59

91 68

65 48 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

59 91 68 65 48 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

91

65 68

59 48 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

91 65 68 59 48 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

48

65 68

59 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 65 68 59 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 203: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

68

65 48

59 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

68 65 48 59 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

59

65 48

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

59 65 48 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

65

59 48

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

65 59 48 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 204: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

48

59 65

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 59 65 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

59

48 65

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

59 48 65 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Intercambio y congelamiento

48

59 65

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 59 65 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 205: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.4 Heap Sort descendente

48

59 65

68 91 98 104

106 108 128 179 196 198 205 225

233 254 281 344 353 366

Vector:

48 59 65 68 91 98 104 106 108 128 179

196 198 205 225 233 254 281 344 353 366

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

3.4.1. Arbol inicial

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 206: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

366

225 108

233 59 68 98

344 91 254 353 65 196 198 48

179 128 104 205 106 281

Vector:

366 225 108 233 59 68 98 344 91 254 353

65 196 198 48 179 128 104 205 106 281

Heapfy paso 1

366

225 108

233 59 68 98

128 91 106 353 65 196 198 48

179 344 104 205 254 281

Vector:

366 225 108 233 59 68 98 128 91 106 353

65 196 198 48 179 344 104 205 254 281

Heapfy paso 2

366

225 108

91 59 65 48

128 104 106 353 68 196 198 98

179 344 233 205 254 281

Vector:

366 225 108 91 59 65 48 128 104 106 353

68 196 198 98 179 344 233 205 254 281

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 207: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

366

59 48

91 106 65 98

128 104 225 353 68 196 198 108

179 344 233 205 254 281

Vector:

366 59 48 91 106 65 98 128 104 225 353

68 196 198 108 179 344 233 205 254 281

Heapfy paso 4

48

59 65

91 106 68 98

128 104 225 353 366 196 198 108

179 344 233 205 254 281

Vector:

48 59 65 91 106 68 98 128 104 225 353

366 196 198 108 179 344 233 205 254 281

Intercambio y congelamiento

281

59 65

91 106 68 98

128 104 225 353 366 196 198 108

179 344 233 205 254 48

Vector:

281 59 65 91 106 68 98 128 104 225 353

366 196 198 108 179 344 233 205 254 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 208: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

59

91 65

104 106 68 98

128 205 225 353 366 196 198 108

179 344 233 281 254 48

Vector:

59 91 65 104 106 68 98 128 205 225 353

366 196 198 108 179 344 233 281 254 48

Intercambio y congelamiento

254

91 65

104 106 68 98

128 205 225 353 366 196 198 108

179 344 233 281 59 48

Vector:

254 91 65 104 106 68 98 128 205 225 353

366 196 198 108 179 344 233 281 59 48

Swapdown

65

91 68

104 106 196 98

128 205 225 353 366 254 198 108

179 344 233 281 59 48

Vector:

65 91 68 104 106 196 98 128 205 225 353

366 254 198 108 179 344 233 281 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 209: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

281

91 68

104 106 196 98

128 205 225 353 366 254 198 108

179 344 233 65 59 48

Vector:

281 91 68 104 106 196 98 128 205 225 353

366 254 198 108 179 344 233 65 59 48

Swapdown

68

91 98

104 106 196 108

128 205 225 353 366 254 198 281

179 344 233 65 59 48

Vector:

68 91 98 104 106 196 108 128 205 225 353

366 254 198 281 179 344 233 65 59 48

Intercambio y congelamiento

233

91 98

104 106 196 108

128 205 225 353 366 254 198 281

179 344 68 65 59 48

Vector:

233 91 98 104 106 196 108 128 205 225 353

366 254 198 281 179 344 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 210: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

91

104 98

128 106 196 108

179 205 225 353 366 254 198 281

233 344 68 65 59 48

Vector:

91 104 98 128 106 196 108 179 205 225 353

366 254 198 281 233 344 68 65 59 48

Intercambio y congelamiento

344

104 98

128 106 196 108

179 205 225 353 366 254 198 281

233 91 68 65 59 48

Vector:

344 104 98 128 106 196 108 179 205 225 353

366 254 198 281 233 91 68 65 59 48

Swapdown

98

104 108

128 106 196 198

179 205 225 353 366 254 344 281

233 91 68 65 59 48

Vector:

98 104 108 128 106 196 198 179 205 225 353

366 254 344 281 233 91 68 65 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 211: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

233

104 108

128 106 196 198

179 205 225 353 366 254 344 281

98 91 68 65 59 48

Vector:

233 104 108 128 106 196 198 179 205 225 353

366 254 344 281 98 91 68 65 59 48

Swapdown

104

106 108

128 225 196 198

179 205 233 353 366 254 344 281

98 91 68 65 59 48

Vector:

104 106 108 128 225 196 198 179 205 233 353

366 254 344 281 98 91 68 65 59 48

Intercambio y congelamiento

281

106 108

128 225 196 198

179 205 233 353 366 254 344 104

98 91 68 65 59 48

Vector:

281 106 108 128 225 196 198 179 205 233 353

366 254 344 104 98 91 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 212: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

106

128 108

179 225 196 198

281 205 233 353 366 254 344 104

98 91 68 65 59 48

Vector:

106 128 108 179 225 196 198 281 205 233 353

366 254 344 104 98 91 68 65 59 48

Intercambio y congelamiento

344

128 108

179 225 196 198

281 205 233 353 366 254 106 104

98 91 68 65 59 48

Vector:

344 128 108 179 225 196 198 281 205 233 353

366 254 106 104 98 91 68 65 59 48

Swapdown

108

128 196

179 225 254 198

281 205 233 353 366 344 106 104

98 91 68 65 59 48

Vector:

108 128 196 179 225 254 198 281 205 233 353

366 344 106 104 98 91 68 65 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 213: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

344

128 196

179 225 254 198

281 205 233 353 366 108 106 104

98 91 68 65 59 48

Vector:

344 128 196 179 225 254 198 281 205 233 353

366 108 106 104 98 91 68 65 59 48

Swapdown

128

179 196

205 225 254 198

281 344 233 353 366 108 106 104

98 91 68 65 59 48

Vector:

128 179 196 205 225 254 198 281 344 233 353

366 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

366

179 196

205 225 254 198

281 344 233 353 128 108 106 104

98 91 68 65 59 48

Vector:

366 179 196 205 225 254 198 281 344 233 353

128 108 106 104 98 91 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 214: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

179

205 196

281 225 254 198

366 344 233 353 128 108 106 104

98 91 68 65 59 48

Vector:

179 205 196 281 225 254 198 366 344 233 353

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

353

205 196

281 225 254 198

366 344 233 179 128 108 106 104

98 91 68 65 59 48

Vector:

353 205 196 281 225 254 198 366 344 233 179

128 108 106 104 98 91 68 65 59 48

Swapdown

196

205 198

281 225 254 353

366 344 233 179 128 108 106 104

98 91 68 65 59 48

Vector:

196 205 198 281 225 254 353 366 344 233 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 215: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

233

205 198

281 225 254 353

366 344 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

233 205 198 281 225 254 353 366 344 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

198

205 233

281 225 254 353

366 344 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

198 205 233 281 225 254 353 366 344 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

344

205 233

281 225 254 353

366 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

344 205 233 281 225 254 353 366 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 216: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

205

225 233

281 344 254 353

366 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

205 225 233 281 344 254 353 366 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

366

225 233

281 344 254 353

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

366 225 233 281 344 254 353 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

225

281 233

366 344 254 353

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

225 281 233 366 344 254 353 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 217: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

353

281 233

366 344 254 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

353 281 233 366 344 254 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

233

281 254

366 344 353 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

233 281 254 366 344 353 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

353

281 254

366 344 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

353 281 254 366 344 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 218: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

254

281 353

366 344 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

254 281 353 366 344 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

344

281 353

366 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

344 281 353 366 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

281

344 353

366 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

281 344 353 366 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 219: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

366

344 353

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

366 344 353 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

344

366 353

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

344 366 353 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

353

366 344

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

353 366 344 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 220: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion de reemplazo 45

353

366 344

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

353 366 344 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Intercambio y congelamiento

366

353 344

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

366 353 344 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

Swapdown

366

353 344

281 254 233 225

205 198 196 179 128 108 106 104

98 91 68 65 59 48

Vector:

366 353 344 281 254 233 225 205 198 196 179

128 108 106 104 98 91 68 65 59 48

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 221: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.6 Merge Polifasico de las particiones marcadas

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 5: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 128,179, 196, 198, 205,281

106 –

Cuadro 6: Fase 1

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {59, 108, 225, 233, 366}; p2 = {68, 98, 344}; . . . ; p6 = {104, 128}; p7 = {106, 205, 281}.

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.7. Merge Polifasico completo con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

Enrique P. Calot Algoritmos y Programacion II

Page 222: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico completo con particiones formadas de 1 elemento 47

E1 E2 E3 S

59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 128,179, 196, 198, 205,281

106 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E2 E3 E1

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 7: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 8: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 59, 108, 225, 233, 366 –68, 98, 344 91 254, 353 –48, 65, 179, 196, 198 104, 128 – –106, 205, 281 – – –

Cuadro 9: Fase 1

E1 E2 E3 S

D D 59, 108, 225, 233, 366 59, 108, 225, 233, 36668, 98, 344 91 254, 353 68, 91, 98, 254, 344,

353

E1 E2 S E3

48, 65, 179, 196, 198 104, 128 – 59, 108, 225, 233, 366106, 205, 281 – – 68, 91, 98, 254, 344,

353

Cuadro 10: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 223: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D 59, 108, 225, 233, 366 59, 108, 225, 233, 36668, 98, 344 91 254, 353 68, 91, 98, 254, 344,

353

E1 E2 S E3

48, 65, 179, 196, 198 104, 128 48, 59, 65, 104, 108,128, 179, 196, 198,225, 233, 366

59, 108, 225, 233, 366

E1 S E2 E3

106, 205, 281 – 48, 59, 65, 104, 108,128, 179, 196, 198,225, 233, 366

68, 91, 98, 254, 344,353

Cuadro 11: Fase 3

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 12: Calculo de la distribucion de columnas y dummies

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {225, 366}; p2 = {108, 233}; . . . ; p10 = {106, 205}; p11 = {281}.

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 224: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 49

E1 E2 E3 S

D D D –D D D –D D D –D 366 225 –108 233 59 –68 98 344 –91 254 353 –65 196 – –198 48 – –179 128 – –104 205 – –106 – – –281 – – –

Cuadro 13: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 – D

198 48 – D

179 128 – D

104 205 – 225, 366106 – – 59, 108, 233281 – – 68, 98, 344– – – 91, 254, 353

Cuadro 14: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 225: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 65, 196 D

198 48 48, 198 D

179 128 128, 179 D

104 205 104, 205, 225, 366 225, 366

E1 S E2 E3

106 – 65, 196 59, 108, 233281 – 48, 198 68, 98, 344– – 128, 179 91, 254, 353– – 104, 205, 225, 366 –

Cuadro 15: Fase 3

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {108, 225, 366}; p2 = {59, 68, 233}; . . . ; p6 = {104, 128, 179}; p7 = {106, 205, 281}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 226: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 51

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 65, 196 D

198 48 48, 198 D

179 128 128, 179 D

104 205 104, 205, 225, 366 225, 366

E1 S E2 E3

106 59, 65, 106, 108, 196,233

65, 196 59, 108, 233

281 48, 68, 98, 198, 281,344

48, 198 68, 98, 344

S E1 E2 E3

– 59, 65, 106, 108, 196,233

128, 179 91, 254, 353

– 48, 68, 98, 198, 281,344

104, 205, 225, 366 –

Cuadro 16: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 227: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 65, 196 D

198 48 48, 198 D

179 128 128, 179 D

104 205 104, 205, 225, 366 225, 366

E1 S E2 E3

106 59, 65, 106, 108, 196,233

65, 196 59, 108, 233

281 48, 68, 98, 198, 281,344

48, 198 68, 98, 344

S E1 E2 E3

59, 65, 91, 106, 108,128, 179, 196, 233,254, 353

59, 65, 106, 108, 196,233

128, 179 91, 254, 353

E3 E1 E2 S

59, 65, 91, 106, 108,128, 179, 196, 233,254, 353

48, 68, 98, 198, 281,344

104, 205, 225, 366 –

Cuadro 17: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 228: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 53

E1 E2 E3 S

D D D D

D D D D

D D D D

D 366 225 225, 366108 233 59 59, 108, 23368 98 344 68, 98, 34491 254 353 91, 254, 353

E1 E2 S E3

65 196 65, 196 D

198 48 48, 198 D

179 128 128, 179 D

104 205 104, 205, 225, 366 225, 366

E1 S E2 E3

106 59, 65, 106, 108, 196,233

65, 196 59, 108, 233

281 48, 68, 98, 198, 281,344

48, 198 68, 98, 344

S E1 E2 E3

59, 65, 91, 106, 108,128, 179, 196, 233,254, 353

59, 65, 106, 108, 196,233

128, 179 91, 254, 353

E3 E1 E2 S

59, 65, 91, 106, 108,128, 179, 196, 233,254, 353

48, 68, 98, 198, 281,344

104, 205, 225, 366 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E1 E2 E3

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 18: Fase final

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 19: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 229: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D –D D D –225, 366 108, 233 59, 68 –98, 344 91, 254 65, 353 –196, 198 48, 179 – –104, 128 106, 205 – –281 – – –

Cuadro 20: Fase 1

E1 E2 E3 S

D D D D

D D D D

225, 366 108, 233 59, 68 59, 68, 108, 225, 233,366

98, 344 91, 254 65, 353 65, 91, 98, 254, 344,353

E1 E2 S E3

196, 198 48, 179 – D

104, 128 106, 205 – D

281 – – 59, 68, 108, 225, 233,366

– – – 65, 91, 98, 254, 344,353

Cuadro 21: Fase 2

E1 E2 E3 S

D D D D

D D D D

225, 366 108, 233 59, 68 59, 68, 108, 225, 233,366

98, 344 91, 254 65, 353 65, 91, 98, 254, 344,353

E1 E2 S E3

196, 198 48, 179 48, 179, 196, 198 D

104, 128 106, 205 104, 106, 128, 205 D

E1 S E2 E3

281 – 48, 179, 196, 198 59, 68, 108, 225, 233,366

– – 104, 106, 128, 205 65, 91, 98, 254, 344,353

Cuadro 22: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 230: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Merge Polifasico con particiones formadas de 4 elementos 55

E1 E2 E3 S

D D D D

D D D D

225, 366 108, 233 59, 68 59, 68, 108, 225, 233,366

98, 344 91, 254 65, 353 65, 91, 98, 254, 344,353

E1 E2 S E3

196, 198 48, 179 48, 179, 196, 198 D

104, 128 106, 205 104, 106, 128, 205 D

E1 S E2 E3

281 48, 59, 68, 108, 179,196, 198, 225, 233,281, 366

48, 179, 196, 198 59, 68, 108, 225, 233,366

S E1 E2 E3

– 48, 59, 68, 108, 179,196, 198, 225, 233,281, 366

104, 106, 128, 205 65, 91, 98, 254, 344,353

Cuadro 23: Fase 4

3.10. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {108, 225, 233, 366}; p2 = {59, 68, 98, 344}; p3 = {65, 91, 254, 353}; p4 ={48, 179, 196, 198}; p5 = {104, 106, 128, 205}; p6 = {281}.

3.10.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.10.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.11. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

3.11.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 231: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

D D D D

225, 366 108, 233 59, 68 59, 68, 108, 225, 233,366

98, 344 91, 254 65, 353 65, 91, 98, 254, 344,353

E1 E2 S E3

196, 198 48, 179 48, 179, 196, 198 D

104, 128 106, 205 104, 106, 128, 205 D

E1 S E2 E3

281 48, 59, 68, 108, 179,196, 198, 225, 233,281, 366

48, 179, 196, 198 59, 68, 108, 225, 233,366

S E1 E2 E3

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

48, 59, 68, 108, 179,196, 198, 225, 233,281, 366

104, 106, 128, 205 65, 91, 98, 254, 344,353

E1 S E2 E3

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

– – –

Cuadro 24: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 25: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 108, 225, 366 –59, 68, 233 91, 98, 344 65, 254, 353 –48, 196, 198 104, 128, 179 – –106, 205, 281 – – –

Cuadro 26: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 232: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 57

E1 E2 E3 S

D D 108, 225, 366 108, 225, 36659, 68, 233 91, 98, 344 65, 254, 353 59, 65, 68, 91, 98,

233, 254, 344, 353

E1 E2 S E3

48, 196, 198 104, 128, 179 – 108, 225, 366106, 205, 281 – – 59, 65, 68, 91, 98,

233, 254, 344, 353

Cuadro 27: Fase 2

E1 E2 E3 S

D D 108, 225, 366 108, 225, 36659, 68, 233 91, 98, 344 65, 254, 353 59, 65, 68, 91, 98,

233, 254, 344, 353

E1 E2 S E3

48, 196, 198 104, 128, 179 48, 104, 108, 128,179, 196, 198, 225,366

108, 225, 366

E1 S E2 E3

106, 205, 281 – 48, 104, 108, 128,179, 196, 198, 225,366

59, 65, 68, 91, 98,233, 254, 344, 353

Cuadro 28: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 233: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 108, 225, 366 108, 225, 36659, 68, 233 91, 98, 344 65, 254, 353 59, 65, 68, 91, 98,

233, 254, 344, 353

E1 E2 S E3

48, 196, 198 104, 128, 179 48, 104, 108, 128,179, 196, 198, 225,366

108, 225, 366

E1 S E2 E3

106, 205, 281 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

48, 104, 108, 128,179, 196, 198, 225,366

59, 65, 68, 91, 98,233, 254, 344, 353

S E1 E2 E3

– 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

– –

Cuadro 29: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 30: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –108, 225, 233, 366 59, 68, 98, 344 65, 91, 254, 353 –48, 179, 196, 198 104, 106, 128, 205 – –281 – – –

Cuadro 31: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 234: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D D D

108, 225, 233, 366 59, 68, 98, 344 65, 91, 254, 353 59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

E1 E2 S E3

48, 179, 196, 198 104, 106, 128, 205 – D

281 – – 59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

Cuadro 32: Fase 2

E1 E2 E3 S

D D D D

108, 225, 233, 366 59, 68, 98, 344 65, 91, 254, 353 59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

E1 E2 S E3

48, 179, 196, 198 104, 106, 128, 205 48, 104, 106, 128,179, 196, 198, 205

D

E1 S E2 E3

281 – 48, 104, 106, 128,179, 196, 198, 205

59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

Cuadro 33: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 235: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

108, 225, 233, 366 59, 68, 98, 344 65, 91, 254, 353 59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

E1 E2 S E3

48, 179, 196, 198 104, 106, 128, 205 48, 104, 106, 128,179, 196, 198, 205

D

E1 S E2 E3

281 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

48, 104, 106, 128,179, 196, 198, 205

59, 65, 68, 91, 98,108, 225, 233, 254,344, 353, 366

S E1 E2 E3

– 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

– –

Cuadro 34: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 236: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 61

b1 b2 Sale Entra

– – Nada 366

366 – Nada 225

366 225 225 108

366 108 366 233

233 108

Nueva particion! Se cierra la particion p1 = {225, 366}108 59

233 59 233 68

68 59

Nueva particion! Se cierra la particion p2 = {108, 233}59 98

68 98 68 344

344 98 98 91

344 91 344 254

254 91

Nueva particion! Se cierra la particion p3 = {59, 68, 98, 344}91 353

254 353 254 65

65 353 353 196

65 196

Nueva particion! Se cierra la particion p4 = {91, 254, 353}65 198

198 196 196 48

198 48 198 179

179 48

Nueva particion! Se cierra la particion p5 = {65, 196, 198}48 128

179 128 128 104

179 104 179 205

205 104 205 106

106 104

Nueva particion! Se cierra la particion p6 = {48, 128, 179, 205}104 281

106 281 106 Nada

– 281 281 Nada

Finaliza la ultima particion en p7 = {104, 106, 281}

3.11.2. Salida final

p1 = {225, 366};

p2 = {108, 233};

p3 = {59, 68, 98, 344};

p4 = {91, 254, 353};

p5 = {65, 196, 198};

p6 = {48, 128, 179, 205};

p7 = {104, 106, 281}.

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 237: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.13 Seleccion Natural con buffers de tamano 2

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 35: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 225, 366 –108, 233 59, 68, 98, 344 91, 254, 353 –65, 196, 198 48, 128, 179, 205 – –104, 106, 281 – – –

Cuadro 36: Fase 1

3.12.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.12.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.13. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D 225, 366 225, 366108, 233 59, 68, 98, 344 91, 254, 353 59, 68, 91, 98, 108,

233, 254, 344, 353

E1 E2 S E3

65, 196, 198 48, 128, 179, 205 – 225, 366104, 106, 281 – – 59, 68, 91, 98, 108,

233, 254, 344, 353

Cuadro 37: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 238: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 63

E1 E2 E3 S

D D 225, 366 225, 366108, 233 59, 68, 98, 344 91, 254, 353 59, 68, 91, 98, 108,

233, 254, 344, 353

E1 E2 S E3

65, 196, 198 48, 128, 179, 205 48, 65, 128, 179, 196,198, 205, 225, 366

225, 366

E1 S E2 E3

104, 106, 281 – 48, 65, 128, 179, 196,198, 205, 225, 366

59, 68, 91, 98, 108,233, 254, 344, 353

Cuadro 38: Fase 3

E1 E2 E3 S

D D 225, 366 225, 366108, 233 59, 68, 98, 344 91, 254, 353 59, 68, 91, 98, 108,

233, 254, 344, 353

E1 E2 S E3

65, 196, 198 48, 128, 179, 205 48, 65, 128, 179, 196,198, 205, 225, 366

225, 366

E1 S E2 E3

104, 106, 281 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

48, 65, 128, 179, 196,198, 205, 225, 366

59, 68, 91, 98, 108,233, 254, 344, 353

S E1 E2 E3

– 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

– –

Cuadro 39: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 239: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Seleccion Natural con buffers de tamano 2

3.13.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 366

366 – – – Nada 225

366 225 – – 225 108

366 – 108 – Nada 233

366 233 108 – 233 59

366 – 108 59 366 Nada

108 59 – –

Nueva particion! Se cierra la particion p1 = {225, 233, 366}59 68

108 68 – – 68 98

108 98 – – 98 344

108 344 – – 108 91

– 344 91 – Nada 254

254 344 91 – 254 353

353 344 91 – 344 65

353 – 91 65 353 Nada

91 65 – –

Nueva particion! Se cierra la particion p2 = {59, 68, 98, 108, 254, 344, 353}65 196

91 196 – – 91 198

198 196 – – 196 48

198 – 48 – Nada 179

198 – 48 179 198 Nada

48 179 – –

Nueva particion! Se cierra la particion p3 = {65, 91, 196, 198}48 128

128 179 – – 128 104

– 179 104 – Nada 205

205 179 104 – 179 106

205 – 104 106 205 Nada

104 106 – –

Nueva particion! Se cierra la particion p4 = {48, 128, 179, 205}104 281

281 106 – – 106 Nada

281 – – – 281 Nada

Finaliza la ultima particion en p5 = {104, 106, 281}

3.13.2. Salida final

p1 = {225, 233, 366};

p2 = {59, 68, 98, 108, 254, 344, 353};

p3 = {65, 91, 196, 198};

p4 = {48, 128, 179, 205};

p5 = {104, 106, 281}.

Enrique P. Calot Algoritmos y Programacion II

Page 240: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 65

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 40: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

225, 233, 366 59, 68, 98, 108, 254,344, 353

65, 91, 196, 198 –

48, 128, 179, 205 104, 106, 281 – –

Cuadro 41: Fase 1

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.14.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.14.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

E1 E2 E3 S

225, 233, 366 59, 68, 98, 108, 254,344, 353

65, 91, 196, 198 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

E1 E2 S E3

48, 128, 179, 205 104, 106, 281 – 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

Cuadro 42: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 241: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.15 Seleccion de reemplazo con buffer de tamano 3

E1 E2 E3 S

225, 233, 366 59, 68, 98, 108, 254,344, 353

65, 91, 196, 198 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

E1 E2 S E3

48, 128, 179, 205 104, 106, 281 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

S E2 E1 E3

– – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 43: Fase final

3.15. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

3.15.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 242: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.16 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 67

b1 b2 b3 Sale Entra

– – – Nada 366

366 – – Nada 225

366 225 – Nada 108

366 225 108 108 233

366 225 233 225 59

366 59 233 233 68

366 59 68 366 98

98 59 68

Nueva particion! Se cierra la particion p1 = {108, 225, 233, 366}59 344

98 344 68 68 91

98 344 91 91 254

98 344 254 98 353

353 344 254 254 65

353 344 65 344 196

353 196 65 353 198

198 196 65

Nueva particion! Se cierra la particion p2 =

{59, 68, 91, 98, 254, 344, 353}65 48

198 196 48 196 179

198 179 48 198 128

128 179 48

Nueva particion! Se cierra la particion p3 = {65, 196, 198}48 104

128 179 104 104 205

128 179 205 128 106

106 179 205 179 281

106 281 205 205 Nada

106 281 – 281 Nada

106 – –

Nueva particion! Se cierra la particion p4 =

{48, 104, 128, 179, 205, 281}106 Nada

Finaliza la ultima particion en p5 = {106}

3.15.2. Salida final

p1 = {108, 225, 233, 366};

p2 = {59, 68, 91, 98, 254, 344, 353};

p3 = {65, 196, 198};

p4 = {48, 104, 128, 179, 205, 281};

p5 = {106}.

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.16.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 243: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.17 Seleccion Natural con buffers de tamano 3

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 44: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

65, 196, 198 –

48, 104, 128, 179,205, 281

106 – –

Cuadro 45: Fase 1

3.16.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

3.17. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.17.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

65, 196, 198 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

E1 E2 S E3

48, 104, 128, 179,205, 281

106 – 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

Cuadro 46: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 244: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Seleccion Natural con buffers de tamano 3 69

E1 E2 E3 S

108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

65, 196, 198 59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

E1 E2 S E3

48, 104, 128, 179,205, 281

106 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

59, 65, 68, 91, 98,108, 196, 198, 225,233, 254, 344, 353,366

S E2 E1 E3

– – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 47: Fase final

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 366

366 – – – – – Nada 225

366 225 – – – – Nada 108

366 225 108 – – – 108 233

366 225 233 – – – 225 59

366 – 233 59 – – Nada 68

366 – 233 59 68 – Nada 98

366 – 233 59 68 98 233 Nada

366 – – 59 68 98 366 Nada

59 68 98 – – –

Nueva particion! Se cierra la particion p1 = {108, 225, 233, 366}59 344

344 68 98 – – – 68 91

344 91 98 – – – 91 254

344 254 98 – – – 98 353

344 254 353 – – – 254 65

344 – 353 65 – – Nada 196

344 – 353 65 196 – Nada 198

344 – 353 65 196 198 344 Nada

– – 353 65 196 198 353 Nada

65 196 198 – – –

Nueva particion! Se cierra la particion p2 = {59, 68, 91, 98, 254, 344, 353}65 48

– 196 198 48 – – Nada 179

179 196 198 48 – – 179 128

– 196 198 48 128 – Nada 104

– 196 198 48 128 104 196 Nada

– – 198 48 128 104 198 Nada

48 128 104 – – –

Nueva particion! Se cierra la particion p3 = {65, 179, 196, 198}48 205

205 128 104 – – – 104 106

205 128 106 – – – 106 281

205 128 281 – – – 128 Nada

205 – 281 – – – 205 Nada

– – 281 – – – 281 Nada

Finaliza la ultima particion en p4 = {48, 104, 106, 128, 205, 281}Algoritmos y Programacion II Facultad de Ingenierıa

Page 245: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.18 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 48: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

65, 179, 196, 198 48, 104, 106, 128,205, 281

– –

Cuadro 49: Fase 1

3.17.2. Salida final

p1 = {108, 225, 233, 366};

p2 = {59, 68, 91, 98, 254, 344, 353};

p3 = {65, 179, 196, 198};

p4 = {48, 104, 106, 128, 205, 281}.

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.18.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.18.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.19. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

Enrique P. Calot Algoritmos y Programacion II

Page 246: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Seleccion de reemplazo con buffer de tamano 4 71

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

E1 E2 S E3

65, 179, 196, 198 48, 104, 106, 128,205, 281

– 59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

Cuadro 50: Fase 2

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

E1 E2 S E3

65, 179, 196, 198 48, 104, 106, 128,205, 281

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

S E2 E1 E3

– – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 51: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 247: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.20 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4

3.19.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 b4 Sale Entra

– – – – Nada 366

366 – – – Nada 225

366 225 – – Nada 108

366 225 108 – Nada 233

366 225 108 233 108 59

366 225 59 233 225 68

366 68 59 233 233 98

366 68 59 98 366 344

344 68 59 98

Nueva particion! Se cierra la particion p1 = {108, 225, 233, 366}59 91

344 68 91 98 68 254

344 254 91 98 91 353

344 254 353 98 98 65

344 254 353 65 254 196

344 196 353 65 344 198

198 196 353 65 353 48

198 196 48 65

Nueva particion! Se cierra la particion p2 =

{59, 68, 91, 98, 254, 344, 353}48 179

198 196 179 65 65 128

198 196 179 128 128 104

198 196 179 104 179 205

198 196 205 104 196 106

198 106 205 104 198 281

281 106 205 104 205 Nada

281 106 – 104 281 Nada

– 106 – 104

Nueva particion! Se cierra la particion p3 =

{48, 65, 128, 179, 196, 198, 205, 281}104 Nada

– 106 – – 106 Nada

Finaliza la ultima particion en p4 = {104, 106}

3.19.2. Salida final

p1 = {108, 225, 233, 366};

p2 = {59, 68, 91, 98, 254, 344, 353};

p3 = {48, 65, 128, 179, 196, 198, 205, 281};

p4 = {104, 106}.

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 248: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.21 Seleccion Natural con buffers de tamano 4 73

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

48, 65, 128, 179, 196,198, 205, 281

104, 106 – –

Cuadro 53: Fase 1

3.20.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.20.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.21. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

3.21.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

E1 E2 S E3

48, 65, 128, 179, 196,198, 205, 281

104, 106 – 59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

Cuadro 54: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 249: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.21 Seleccion Natural con buffers de tamano 4

E1 E2 E3 S

D 108, 225, 233, 366 59, 68, 91, 98, 254,344, 353

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

E1 E2 S E3

48, 65, 128, 179, 196,198, 205, 281

104, 106 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

59, 68, 91, 98, 108,225, 233, 254, 344,353, 366

S E2 E1 E3

– – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 55: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 250: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 75

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 366

366 – – – – – – – Nada 225

366 225 – – – – – – Nada 108

366 225 108 – – – – – Nada 233

366 225 108 233 – – – – 108 59

366 225 – 233 59 – – – Nada 68

366 225 – 233 59 68 – – Nada 98

366 225 – 233 59 68 98 – Nada 344

366 225 344 233 59 68 98 – 225 91

366 – 344 233 59 68 98 91 233 Nada

366 – 344 – 59 68 98 91 344 Nada

366 – – – 59 68 98 91 366 Nada

59 68 98 91 – – – –

Nueva particion! Se cierra la particion p1 = {108, 225, 233, 344, 366}59 254

254 68 98 91 – – – – 68 353

254 353 98 91 – – – – 91 65

254 353 98 – 65 – – – Nada 196

254 353 98 196 65 – – – 98 198

254 353 198 196 65 – – – 196 48

254 353 198 – 65 48 – – Nada 179

254 353 198 – 65 48 179 – Nada 128

254 353 198 – 65 48 179 128 198 Nada

254 353 – – 65 48 179 128 254 Nada

– 353 – – 65 48 179 128 353 Nada

65 48 179 128 – – – –

Nueva particion! Se cierra la particion p2 = {59, 68, 91, 98, 196, 198, 254, 353}48 104

65 104 179 128 – – – – 65 205

205 104 179 128 – – – – 104 106

205 106 179 128 – – – – 106 281

205 281 179 128 – – – – 128 Nada

205 281 179 – – – – – 179 Nada

205 281 – – – – – – 205 Nada

– 281 – – – – – – 281 Nada

Finaliza la ultima particion en p3 = {48, 65, 104, 106, 128, 179, 205, 281}

3.21.2. Salida final

p1 = {108, 225, 233, 344, 366};

p2 = {59, 68, 91, 98, 196, 198, 254, 353};

p3 = {48, 65, 104, 106, 128, 179, 205, 281}.

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.22.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 251: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.23 Seleccion Natural con buffers de tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 56: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

108, 225, 233, 344,366

59, 68, 91, 98, 196,198, 254, 353

48, 65, 104, 106, 128,179, 205, 281

Cuadro 57: Fase 1

3.22.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.23. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.23.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 252: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.23 Seleccion Natural con buffers de tamano 5 77

E1 E2 E3 S

108, 225, 233, 344,366

59, 68, 91, 98, 196,198, 254, 353

48, 65, 104, 106, 128,179, 205, 281

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E2 E3 E1

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 58: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 366

366 – – – – – – – – – Nada 225

366 225 – – – – – – – – Nada 108

366 225 108 – – – – – – – Nada 233

366 225 108 233 – – – – – – Nada 59

366 225 108 233 59 – – – – – 59 68

366 225 108 233 68 – – – – – 68 98

366 225 108 233 98 – – – – – 98 344

366 225 108 233 344 – – – – – 108 91

366 225 – 233 344 91 – – – – Nada 254

366 225 254 233 344 91 – – – – 225 353

366 353 254 233 344 91 – – – – 233 65

366 353 254 – 344 91 65 – – – Nada 196

366 353 254 – 344 91 65 196 – – Nada 198

366 353 254 – 344 91 65 196 198 – Nada 48

366 353 254 – 344 91 65 196 198 48 254 Nada

366 353 – – 344 91 65 196 198 48 344 Nada

366 353 – – – 91 65 196 198 48 353 Nada

366 – – – – 91 65 196 198 48 366 Nada

91 65 196 198 48 – – – – –

Nueva particion! Se cierra la particion p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366}48 179

91 65 196 198 179 – – – – – 65 128

91 128 196 198 179 – – – – – 91 104

104 128 196 198 179 – – – – – 104 205

205 128 196 198 179 – – – – – 128 106

205 – 196 198 179 106 – – – – Nada 281

205 281 196 198 179 106 – – – – 179 Nada

205 281 196 198 – 106 – – – – 196 Nada

205 281 – 198 – 106 – – – – 198 Nada

205 281 – – – 106 – – – – 205 Nada

– 281 – – – 106 – – – – 281 Nada

106 – – – – – – – – –

Nueva particion! Se cierra la particion p2 = {48, 65, 91, 104, 128, 179, 196, 198, 205, 281}106 Nada

Finaliza la ultima particion en p3 = {106}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 253: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.24 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 59: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 128,179, 196, 198, 205,281

106 –

Cuadro 60: Fase 1

3.23.2. Salida final

p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366};

p2 = {48, 65, 91, 104, 128, 179, 196, 198, 205, 281};

p3 = {106}.

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.24.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.24.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.25. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.25.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 254: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.25 Seleccion de reemplazo con buffer de tamano 6 79

E1 E2 E3 S

59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 128,179, 196, 198, 205,281

106 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E2 E3 E1

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 61: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 366

366 – – – – – Nada 225

366 225 – – – – Nada 108

366 225 108 – – – Nada 233

366 225 108 233 – – Nada 59

366 225 108 233 59 – Nada 68

366 225 108 233 59 68 59 98

366 225 108 233 98 68 68 344

366 225 108 233 98 344 98 91

366 225 108 233 91 344 108 254

366 225 254 233 91 344 225 353

366 353 254 233 91 344 233 65

366 353 254 65 91 344 254 196

366 353 196 65 91 344 344 198

366 353 196 65 91 198 353 48

366 48 196 65 91 198 366 179

179 48 196 65 91 198

Nueva particion! Se cierra la particion p1 =

{59, 68, 98, 108, 225, 233, 254, 344, 353, 366}48 128

179 128 196 65 91 198 65 104

179 128 196 104 91 198 91 205

179 128 196 104 205 198 104 106

179 128 196 106 205 198 106 281

179 128 196 281 205 198 128 Nada

179 – 196 281 205 198 179 Nada

– – 196 281 205 198 196 Nada

– – – 281 205 198 198 Nada

– – – 281 205 – 205 Nada

– – – 281 – – 281 Nada

Finaliza la ultima particion en p2 =

{48, 65, 91, 104, 106, 128, 179, 196, 198, 205, 281}

3.25.2. Salida final

p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366};

p2 = {48, 65, 91, 104, 106, 128, 179, 196, 198, 205, 281}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 255: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.26 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 62: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 106,128, 179, 196, 198,205, 281

Cuadro 63: Fase 1

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.26.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.26.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.27. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.27.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 256: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.27 Seleccion Natural con buffers de tamano 6 81

E1 E2 E3 S

D 59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 106,128, 179, 196, 198,205, 281

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E2 E3 E1

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 64: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 366

366 – – – – – – – – – – – Nada 225

366 225 – – – – – – – – – – Nada 108

366 225 108 – – – – – – – – – Nada 233

366 225 108 233 – – – – – – – – Nada 59

366 225 108 233 59 – – – – – – – Nada 68

366 225 108 233 59 68 – – – – – – 59 98

366 225 108 233 98 68 – – – – – – 68 344

366 225 108 233 98 344 – – – – – – 98 91

366 225 108 233 – 344 91 – – – – – Nada 254

366 225 108 233 254 344 91 – – – – – 108 353

366 225 353 233 254 344 91 – – – – – 225 65

366 – 353 233 254 344 91 65 – – – – Nada 196

366 – 353 233 254 344 91 65 196 – – – Nada 198

366 – 353 233 254 344 91 65 196 198 – – Nada 48

366 – 353 233 254 344 91 65 196 198 48 – Nada 179

366 – 353 233 254 344 91 65 196 198 48 179 233 Nada

366 – 353 – 254 344 91 65 196 198 48 179 254 Nada

366 – 353 – – 344 91 65 196 198 48 179 344 Nada

366 – 353 – – – 91 65 196 198 48 179 353 Nada

366 – – – – – 91 65 196 198 48 179 366 Nada

91 65 196 198 48 179 – – – – – –

Nueva particion! Se cierra la particion p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366}48 128

91 65 196 198 128 179 – – – – – – 65 104

91 104 196 198 128 179 – – – – – – 91 205

205 104 196 198 128 179 – – – – – – 104 106

205 106 196 198 128 179 – – – – – – 106 281

205 281 196 198 128 179 – – – – – – 128 Nada

205 281 196 198 – 179 – – – – – – 179 Nada

205 281 196 198 – – – – – – – – 196 Nada

205 281 – 198 – – – – – – – – 198 Nada

205 281 – – – – – – – – – – 205 Nada

– 281 – – – – – – – – – – 281 Nada

Finaliza la ultima particion en p2 = {48, 65, 91, 104, 106, 128, 179, 196, 198, 205, 281}

3.27.2. Salida final

p1 = {59, 68, 98, 108, 225, 233, 254, 344, 353, 366};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 257: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.28 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 65: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 106,128, 179, 196, 198,205, 281

Cuadro 66: Fase 1

p2 = {48, 65, 91, 104, 106, 128, 179, 196, 198, 205, 281}.

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.28.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.28.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 258: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.29 Bubble Sort ascendente 83

E1 E2 E3 S

D 59, 68, 98, 108, 225,233, 254, 344, 353,366

48, 65, 91, 104, 106,128, 179, 196, 198,205, 281

48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

S E2 E3 E1

– – – 48, 59, 65, 68, 91, 98,104, 106, 108, 128,179, 196, 198, 205,225, 233, 254, 281,344, 353, 366

Cuadro 67: Fase final

3.29. Bubble Sort ascendente

3.29.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 20/20

1 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 366 16/19

2 108 225 59 68 98 233 91 254 344 65 196 198 48 179 128 104 205 106 281 353 366 14/18

3 108 59 68 98 225 91 233 254 65 196 198 48 179 128 104 205 106 281 344 353 366 13/17

4 59 68 98 108 91 225 233 65 196 198 48 179 128 104 205 106 254 281 344 353 366 10/16

5 59 68 98 91 108 225 65 196 198 48 179 128 104 205 106 233 254 281 344 353 366 10/15

6 59 68 91 98 108 65 196 198 48 179 128 104 205 106 225 233 254 281 344 353 366 6/14

7 59 68 91 98 65 108 196 48 179 128 104 198 106 205 225 233 254 281 344 353 366 6/13

8 59 68 91 65 98 108 48 179 128 104 196 106 198 205 225 233 254 281 344 353 366 5/12

9 59 68 65 91 98 48 108 128 104 179 106 196 198 205 225 233 254 281 344 353 366 4/11

10 59 65 68 91 48 98 108 104 128 106 179 196 198 205 225 233 254 281 344 353 366 3/10

11 59 65 68 48 91 98 104 108 106 128 179 196 198 205 225 233 254 281 344 353 366 2/9

12 59 65 48 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 1/8

13 59 48 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 1/7

14 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/6

15 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/5

16 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/4

17 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/3

18 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/2

19 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/1

20 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 259: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.30 Bubble Sort descendente

3.30. Bubble Sort descendente

3.30.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 16/20

1 366 225 233 108 68 98 344 91 254 353 65 196 198 59 179 128 104 205 106 281 48 14/19

2 366 233 225 108 98 344 91 254 353 68 196 198 65 179 128 104 205 106 281 59 48 11/18

3 366 233 225 108 344 98 254 353 91 196 198 68 179 128 104 205 106 281 65 59 48 11/17

4 366 233 225 344 108 254 353 98 196 198 91 179 128 104 205 106 281 68 65 59 48 11/16

5 366 233 344 225 254 353 108 196 198 98 179 128 104 205 106 281 91 68 65 59 48 11/15

6 366 344 233 254 353 225 196 198 108 179 128 104 205 106 281 98 91 68 65 59 48 8/14

7 366 344 254 353 233 225 198 196 179 128 108 205 106 281 104 98 91 68 65 59 48 3/13

8 366 344 353 254 233 225 198 196 179 128 205 108 281 106 104 98 91 68 65 59 48 3/12

9 366 353 344 254 233 225 198 196 179 205 128 281 108 106 104 98 91 68 65 59 48 2/11

10 366 353 344 254 233 225 198 196 205 179 281 128 108 106 104 98 91 68 65 59 48 2/10

11 366 353 344 254 233 225 198 205 196 281 179 128 108 106 104 98 91 68 65 59 48 2/9

12 366 353 344 254 233 225 205 198 281 196 179 128 108 106 104 98 91 68 65 59 48 1/8

13 366 353 344 254 233 225 205 281 198 196 179 128 108 106 104 98 91 68 65 59 48 1/7

14 366 353 344 254 233 225 281 205 198 196 179 128 108 106 104 98 91 68 65 59 48 1/6

15 366 353 344 254 233 281 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 1/5

16 366 353 344 254 281 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 1/4

17 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/3

18 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/2

19 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/1

20 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 260: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.31 Bilateral Bubble Sort ascendente 85

3.31. Bilateral Bubble Sort ascendente

3.31.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 20/20

1 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 366 16/20

2 48 225 108 233 59 68 98 344 91 254 353 65 196 198 104 179 128 106 205 281 366 15/18

3 48 108 225 59 68 98 233 91 254 344 65 196 198 104 179 128 106 205 281 353 366 12/18

4 48 59 108 225 65 68 98 233 91 254 344 104 196 198 106 179 128 205 281 353 366 12/16

5 48 59 108 65 68 98 225 91 233 254 104 196 198 106 179 128 205 281 344 353 366 8/16

6 48 59 65 108 68 91 98 225 104 233 254 106 196 198 128 179 205 281 344 353 366 10/14

7 48 59 65 68 91 98 108 104 225 233 106 196 198 128 179 205 254 281 344 353 366 5/14

8 48 59 65 68 91 98 104 108 106 225 233 128 196 198 179 205 254 281 344 353 366 6/12

9 48 59 65 68 91 98 104 106 108 225 128 196 198 179 205 233 254 281 344 353 366 3/12

10 48 59 65 68 91 98 104 106 108 128 225 179 196 198 205 233 254 281 344 353 366 4/10

11 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/10

12 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/8

13 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/8

14 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/6

15 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/6

16 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/4

17 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/4

18 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/2

19 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/2

20 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 261: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.32 Bilateral Bubble Sort descendente

3.32. Bilateral Bubble Sort descendente

3.32.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 16/20

1 366 225 233 108 68 98 344 91 254 353 65 196 198 59 179 128 104 205 106 281 48 17/20

2 366 353 225 233 108 68 98 344 91 254 281 65 196 198 59 179 128 104 205 106 48 13/18

3 366 353 233 225 108 98 344 91 254 281 68 196 198 65 179 128 104 205 106 59 48 13/18

4 366 353 344 233 225 108 98 281 91 254 205 68 196 198 65 179 128 104 106 59 48 9/16

5 366 353 344 233 225 108 281 98 254 205 91 196 198 68 179 128 104 106 65 59 48 8/16

6 366 353 344 281 233 225 108 254 98 205 198 91 196 179 68 128 106 104 65 59 48 8/14

7 366 353 344 281 233 225 254 108 205 198 98 196 179 91 128 106 104 68 65 59 48 5/14

8 366 353 344 281 254 233 225 205 108 198 196 98 179 128 91 106 104 68 65 59 48 6/12

9 366 353 344 281 254 233 225 205 198 196 108 179 128 98 106 104 91 68 65 59 48 2/12

10 366 353 344 281 254 233 225 205 198 196 179 108 128 106 98 104 91 68 65 59 48 2/10

11 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/10

12 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/8

13 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/8

14 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/6

15 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/6

16 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/4

17 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/4

18 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/2

19 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/2

20 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 262: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.33 Selection Sort ascendente 87

3.33. Selection Sort ascendente

3.33.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 1/20

1 48 225 108 233 59 68 98 344 91 254 353 65 196 198 366 179 128 104 205 106 281 1/19

2 48 59 108 233 225 68 98 344 91 254 353 65 196 198 366 179 128 104 205 106 281 1/18

3 48 59 65 233 225 68 98 344 91 254 353 108 196 198 366 179 128 104 205 106 281 1/17

4 48 59 65 68 225 233 98 344 91 254 353 108 196 198 366 179 128 104 205 106 281 1/16

5 48 59 65 68 91 233 98 344 225 254 353 108 196 198 366 179 128 104 205 106 281 1/15

6 48 59 65 68 91 98 233 344 225 254 353 108 196 198 366 179 128 104 205 106 281 1/14

7 48 59 65 68 91 98 104 344 225 254 353 108 196 198 366 179 128 233 205 106 281 1/13

8 48 59 65 68 91 98 104 106 225 254 353 108 196 198 366 179 128 233 205 344 281 1/12

9 48 59 65 68 91 98 104 106 108 254 353 225 196 198 366 179 128 233 205 344 281 1/11

10 48 59 65 68 91 98 104 106 108 128 353 225 196 198 366 179 254 233 205 344 281 1/10

11 48 59 65 68 91 98 104 106 108 128 179 225 196 198 366 353 254 233 205 344 281 1/9

12 48 59 65 68 91 98 104 106 108 128 179 196 225 198 366 353 254 233 205 344 281 1/8

13 48 59 65 68 91 98 104 106 108 128 179 196 198 225 366 353 254 233 205 344 281 1/7

14 48 59 65 68 91 98 104 106 108 128 179 196 198 205 366 353 254 233 225 344 281 1/6

15 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 353 254 233 366 344 281 1/5

16 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 353 366 344 281 1/4

17 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 353 366 344 281 1/3

18 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 366 344 353 1/2

19 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 366 353 1/1

20 48 59 65 68 91 98 104 106 108 128 179 196 198 205 225 233 254 281 344 353 366 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 263: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

88 3.34 Selection Sort descendente

3.34. Selection Sort descendente

3.34.1. Desarrollo

0 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 1/20

1 366 225 108 233 59 68 98 344 91 254 353 65 196 198 48 179 128 104 205 106 281 1/19

2 366 353 108 233 59 68 98 344 91 254 225 65 196 198 48 179 128 104 205 106 281 1/18

3 366 353 344 233 59 68 98 108 91 254 225 65 196 198 48 179 128 104 205 106 281 1/17

4 366 353 344 281 59 68 98 108 91 254 225 65 196 198 48 179 128 104 205 106 233 1/16

5 366 353 344 281 254 68 98 108 91 59 225 65 196 198 48 179 128 104 205 106 233 1/15

6 366 353 344 281 254 233 98 108 91 59 225 65 196 198 48 179 128 104 205 106 68 1/14

7 366 353 344 281 254 233 225 108 91 59 98 65 196 198 48 179 128 104 205 106 68 1/13

8 366 353 344 281 254 233 225 205 91 59 98 65 196 198 48 179 128 104 108 106 68 1/12

9 366 353 344 281 254 233 225 205 198 59 98 65 196 91 48 179 128 104 108 106 68 1/11

10 366 353 344 281 254 233 225 205 198 196 98 65 59 91 48 179 128 104 108 106 68 1/10

11 366 353 344 281 254 233 225 205 198 196 179 65 59 91 48 98 128 104 108 106 68 1/9

12 366 353 344 281 254 233 225 205 198 196 179 128 59 91 48 98 65 104 108 106 68 1/8

13 366 353 344 281 254 233 225 205 198 196 179 128 108 91 48 98 65 104 59 106 68 1/7

14 366 353 344 281 254 233 225 205 198 196 179 128 108 106 48 98 65 104 59 91 68 1/6

15 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 65 48 59 91 68 1/5

16 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 65 48 59 91 68 1/4

17 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 48 59 65 68 1/3

18 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 59 65 48 1/2

19 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 1/1

20 366 353 344 281 254 233 225 205 198 196 179 128 108 106 104 98 91 68 65 59 48 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 264: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-07-12

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

366, 225, 108, 233, 59†, 68, 98, 344†, 91†, 254, 353†, 65, 196, 198, 48, 179†, 128,

104†, 205, 106, 281†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

b. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

196, 179†, 205†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar los algoritmos de Quick Sort (hasta haber completado dos niveles de recursividad), Heap Sorten orden ascendente (hacer al menos 1 swapdown) y Radix Sort en orden ascendente (entero).

d. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones ordenadastomadas del lote de datos.

e. ¿por que existe el algoritmo de seleccion natural con un buffer auxiliar y no se hace seleccion de reemplazocon un buffer que mide el doble (tamano del original + tamano del auxiliar)?

Page 265: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 19 de Julio de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-07-19

*[email protected]

Page 266: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. c. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4. d. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 82.4.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5. e. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6. e. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.7. e. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. Resolucion explayada 13

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2. Quick Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 463.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 463.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 463.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.7. Merge Polifasico completo con particiones formadas de 1 elemento . . . . . . . . . . . . . 493.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.8. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 493.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.9. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 543.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.10. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 563.10.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 56

Enrique P. Calot Algoritmos y Programacion II

Page 267: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.10.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.11. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 61

3.11.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.11.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 623.12.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 633.12.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.13. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.13.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.13.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 663.14.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 663.14.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.15. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 673.15.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.15.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 683.16.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 683.16.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.17. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.17.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.17.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 713.18.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 713.18.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.19. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 713.19.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.19.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 733.20.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 733.20.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.21. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.21.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.21.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 763.22.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 763.22.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.23. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 783.24.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.24.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.25. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 783.25.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.25.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 803.26.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 803.26.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 268: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 823.28.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 823.28.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.34. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883.34.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Enrique P. Calot Algoritmos y Programacion II

Page 269: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

30, 290, 182, 340, 394†, 133, 118, 374†, 119†, 353, 376†, 272, 221, 238,

23, 60†, 145, 193†, 275, 172, 357†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

b. Tanto el algoritmo Heap sort como el Selection Sort son del tipo de seleccion (para cada elementobuscan el mınimo/maximo y lo congelan). Sin embargo el algoritmo Heap sort es mas veloz bajociertas condiciones. Deduzca que condiciones son y por que se vuelve mas veloz.

c. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

238, 221†, 275†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

d. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

e. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero), Heap Sort en orden ascen-dente (hacer al menos 1 swapdown) y Quick Sort (hasta haber completado dos niveles de recursivi-dad).

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 270: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 b. Pregunta teorica

2.1.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 30

30 – – – – Nada 290

30 290 – – – Nada 182

30 290 182 – – Nada 340

30 290 182 340 – Nada 394

30 290 182 340 394 30 133

133 290 182 340 394 133 118

118 290 182 340 394 182 374

118 290 374 340 394 290 119

118 119 374 340 394 340 353

118 119 374 353 394 353 376

118 119 374 376 394 374 272

118 119 272 376 394 376 221

118 119 272 221 394 394 238

118 119 272 221 238

Nueva particion! Se cierra la particion p1 =

{30, 133, 182, 290, 340, 353, 374, 376, 394}118 23

23 119 272 221 238 119 60

23 60 272 221 238 221 145

23 60 272 145 238 238 193

23 60 272 145 193 272 275

23 60 275 145 193 275 172

23 60 172 145 193

Nueva particion! Se cierra la particion p2 =

{118, 119, 221, 238, 272, 275}23 357

357 60 172 145 193 60 Nada

357 – 172 145 193 145 Nada

357 – 172 – 193 172 Nada

357 – – – 193 193 Nada

357 – – – – 357 Nada

Finaliza la ultima particion en p3 = {23, 60, 145, 172, 193, 357}

2.1.2. Salida final

p1 = {30, 133, 182, 290, 340, 353, 374, 376, 394};

p2 = {118, 119, 221, 238, 272, 275};

p3 = {23, 60, 145, 172, 193, 357}.

2.2. b. Pregunta teorica

Tanto el algoritmo Heap sort como el Selection Sort son del tipo de seleccion (para cada elementobuscan el mınimo/maximo y lo congelan). Sin embargo el algoritmo Heap sort es mas veloz bajo ciertascondiciones. Deduzca que condiciones son y por que se vuelve mas veloz.

2.2.1. Respuesta

Ambos algoritmos buscan el maximo/mınimo n veces y lo congelan, la diferencia principal es queInsertion sort hace n busquedas secuenciales (de orden n) y Heap sort hace n busquedas binarias (de

Enrique P. Calot Algoritmos y Programacion II

Page 271: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.3 c. Ejercicio de B-trees 7

orden log2 n). El resultado es un orden O(n2) para el Insertion y un O(n log2 n) para el Heap sort. Lacondicion para que Heap supere en tiempo a Insertion es que n sea lo suficientemente grande como paraque la diferencia en el orden se haga significativa (n2 ≫ n log2 n) y justifique hacer el procedimiento deheapify.

2.3. c. Ejercicio de B-trees

Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

238, 221†, 275†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.3.1. Insercion

•290•

×30×182× ×340×394×

Insercion de 5 elementos: 30, 290, 182, 340, 394

•290•

×30×118×133×182× ×340×374×394×

Insercion de 3 elementos: 133, 118, 374

•119•290•

×30×118× ×133×182× ×340×374×394×

Insercion de 1 elemento: 119

•119•290•374•

×30×118× ×133×182× ×340×353× ×376×394×

Insercion de 2 elementos: 353, 376

•119•221•290•374•

×23×30×60×118× ×133×182× ×238×272× ×340×353× ×376×394×

Insercion de 5 elementos: 272, 221, 238, 23, 60

•119•221•290•374•

×23×30×60×118× ×133×145×182×193× ×238×272× ×340×353× ×376×394×

Insercion de 2 elementos: 145, 193

•221•

•119•172• •290•374•

×23×30×60×118× ×133×145× ×182×193× ×238×272×275× ×340×353×357× ×376×394×

Insercion de 3 elementos: 275, 172, 357

Algoritmos y Programacion II Facultad de Ingenierıa

Page 272: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.4 d. Merge Polifasico

2.3.2. Eliminacion

•119•172•290•374•

×23×30×60×118× ×133×145× ×182×193×272×275× ×340×353×357× ×376×394×

Eliminacion de 2 elementos: 238, 221

•119•172•290•374•

×23×30×60×118× ×133×145× ×182×193×272× ×340×353×357× ×376×394×

Eliminacion de 1 elemento: 275

2.4. d. Merge Polifasico

Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones orde-nadas tomadas del lote de datos.

2.4.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.4.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.5. e. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

2.5.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 273: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 e. Radix Sort 9

E1 E2 E3 S

D D D –D D D –D D D –D 30 290 –182 340 394 –133 118 374 –119 353 376 –272 221 – –238 23 – –60 145 – –193 275 – –172 – – –357 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 – D

238 23 – D

60 145 – D

193 275 – 30, 290172 – – 182, 340, 394357 – – 118, 133, 374– – – 119, 353, 376

Cuadro 3: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 274: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.5 e. Radix Sort

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 221, 272 D

238 23 23, 238 D

60 145 60, 145 D

193 275 30, 193, 275, 290 30, 290

E1 S E2 E3

172 – 221, 272 182, 340, 394357 – 23, 238 118, 133, 374– – 60, 145 119, 353, 376– – 30, 193, 275, 290 –

Cuadro 4: Fase 3

Paso 0 Paso 1 Paso 2 Paso 3030 030 118 023290 290 119 030182 340 221 060340 060 023 118394 221 030 119133 182 133 133118 272 238 145374 172 340 172119 133 145 182353 353 353 193376 023 357 221272 193 060 238221 394 272 272238 374 172 275023 145 374 290060 275 275 340145 376 376 353193 357 182 357275 118 290 374172 238 193 376357 119 394 394

Enrique P. Calot Algoritmos y Programacion II

Page 275: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Quick Sort 11

2.6. e. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

2.6.1. Desarrollo

Paso 1 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357

Paso 2 23 30 182 340 394 133 118 374 119 353 376 272 221 238 290 60 145 193 275 172 357

Paso 3 119 172 145 133 118 60 182 353 376 272 221 238 290 374 394 193 275 340 357

Final 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394

2.7. e. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

2.7.1. Arbol inicial

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357

Arbol inicial y su vector asociadoHeapfy paso 0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 276: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.7 e. Heap Sort

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376

272 221 238 23 60 145 193 275 172 357

Heapfy paso 1

30

290 182

340 394 133 118

374 275 357 376 272 221 238 23

60 145 193 119 172 353

Vector:

30 290 182 340 394 133 118 374 275 357 376

272 221 238 23 60 145 193 119 172 353

Heapfy paso 2

30

290 182

374 394 272 238

340 275 357 376 133 221 118 23

60 145 193 119 172 353

Vector:

30 290 182 374 394 272 238 340 275 357 376

133 221 118 23 60 145 193 119 172 353

Heapfy paso 3

Enrique P. Calot Algoritmos y Programacion II

Page 277: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3 Resolucion explayada 13

30

394 272

374 376 221 238

340 275 357 290 133 182 118 23

60 145 193 119 172 353

Vector:

30 394 272 374 376 221 238 340 275 357 290

133 182 118 23 60 145 193 119 172 353

Heapfy paso 4

394

376 272

374 357 221 238

340 275 353 290 133 182 118 23

60 145 193 119 172 30

Vector:

394 376 272 374 357 221 238 340 275 353 290

133 182 118 23 60 145 193 119 172 30

30

376 272

374 357 221 238

340 275 353 290 133 182 118 23

60 145 193 119 172 394

Vector:

30 376 272 374 357 221 238 340 275 353 290

133 182 118 23 60 145 193 119 172 394

Paso 1: ultimo congelado pedido antes del corte

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumno

Algoritmos y Programacion II Facultad de Ingenierıa

Page 278: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 3.1 Radix Sort descendente

podra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Paso 0 Paso 1 Paso 2 Paso 3030 119 394 394290 118 193 376182 238 290 374340 357 182 357394 376 376 353133 145 275 340118 275 374 290374 394 272 275119 374 172 272353 133 060 238376 353 357 221272 023 353 193221 193 145 182238 182 340 172023 272 238 145060 172 133 133145 221 030 119193 030 023 118275 290 221 060172 340 119 030357 060 118 023

3.2. Quick Sort completo

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

Enrique P. Calot Algoritmos y Programacion II

Page 279: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 15

3.2.1. Desarrollo

Paso 1 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357

Paso 2 23 30 182 340 394 133 118 374 119 353 376 272 221 238 290 60 145 193 275 172 357

Paso 3 119 172 145 133 118 60 182 353 376 272 221 238 290 374 394 193 275 340 357

Paso 4 118 60 119 133 145 172 193 340 272 221 238 290 275 353 394 374 376 357

Paso 5 60 118 133 145 172 193 340 272 221 238 290 275 357 374 376 394

Paso 6 145 172 275 272 221 238 290 340 357 374 376

Paso 7 238 272 221 275 290 374 376

Final 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357

Arbol inicial y su vector asociadoHeapfy paso 0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 280: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376

272 221 238 23 60 145 193 275 172 357

Heapfy paso 1

30

290 182

340 394 133 118

374 275 357 376 272 221 238 23

60 145 193 119 172 353

Vector:

30 290 182 340 394 133 118 374 275 357 376

272 221 238 23 60 145 193 119 172 353

Heapfy paso 2

30

290 182

374 394 272 238

340 275 357 376 133 221 118 23

60 145 193 119 172 353

Vector:

30 290 182 374 394 272 238 340 275 357 376

133 221 118 23 60 145 193 119 172 353

Heapfy paso 3

Enrique P. Calot Algoritmos y Programacion II

Page 281: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

30

394 272

374 376 221 238

340 275 357 290 133 182 118 23

60 145 193 119 172 353

Vector:

30 394 272 374 376 221 238 340 275 357 290

133 182 118 23 60 145 193 119 172 353

Heapfy paso 4

394

376 272

374 357 221 238

340 275 353 290 133 182 118 23

60 145 193 119 172 30

Vector:

394 376 272 374 357 221 238 340 275 353 290

133 182 118 23 60 145 193 119 172 30

Intercambio y congelamiento

30

376 272

374 357 221 238

340 275 353 290 133 182 118 23

60 145 193 119 172 394

Vector:

30 376 272 374 357 221 238 340 275 353 290

133 182 118 23 60 145 193 119 172 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 282: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

376

374 272

340 357 221 238

145 275 353 290 133 182 118 23

60 30 193 119 172 394

Vector:

376 374 272 340 357 221 238 145 275 353 290

133 182 118 23 60 30 193 119 172 394

Intercambio y congelamiento

172

374 272

340 357 221 238

145 275 353 290 133 182 118 23

60 30 193 119 376 394

Vector:

172 374 272 340 357 221 238 145 275 353 290

133 182 118 23 60 30 193 119 376 394

Swapdown

374

357 272

340 353 221 238

145 275 172 290 133 182 118 23

60 30 193 119 376 394

Vector:

374 357 272 340 353 221 238 145 275 172 290

133 182 118 23 60 30 193 119 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 283: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

119

357 272

340 353 221 238

145 275 172 290 133 182 118 23

60 30 193 374 376 394

Vector:

119 357 272 340 353 221 238 145 275 172 290

133 182 118 23 60 30 193 374 376 394

Swapdown

357

353 272

340 290 221 238

145 275 172 119 133 182 118 23

60 30 193 374 376 394

Vector:

357 353 272 340 290 221 238 145 275 172 119

133 182 118 23 60 30 193 374 376 394

Intercambio y congelamiento

193

353 272

340 290 221 238

145 275 172 119 133 182 118 23

60 30 357 374 376 394

Vector:

193 353 272 340 290 221 238 145 275 172 119

133 182 118 23 60 30 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 284: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

353

340 272

275 290 221 238

145 193 172 119 133 182 118 23

60 30 357 374 376 394

Vector:

353 340 272 275 290 221 238 145 193 172 119

133 182 118 23 60 30 357 374 376 394

Intercambio y congelamiento

30

340 272

275 290 221 238

145 193 172 119 133 182 118 23

60 353 357 374 376 394

Vector:

30 340 272 275 290 221 238 145 193 172 119

133 182 118 23 60 353 357 374 376 394

Swapdown

340

290 272

275 172 221 238

145 193 30 119 133 182 118 23

60 353 357 374 376 394

Vector:

340 290 272 275 172 221 238 145 193 30 119

133 182 118 23 60 353 357 374 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 285: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

60

290 272

275 172 221 238

145 193 30 119 133 182 118 23

340 353 357 374 376 394

Vector:

60 290 272 275 172 221 238 145 193 30 119

133 182 118 23 340 353 357 374 376 394

Swapdown

290

275 272

193 172 221 238

145 60 30 119 133 182 118 23

340 353 357 374 376 394

Vector:

290 275 272 193 172 221 238 145 60 30 119

133 182 118 23 340 353 357 374 376 394

Intercambio y congelamiento

23

275 272

193 172 221 238

145 60 30 119 133 182 118 290

340 353 357 374 376 394

Vector:

23 275 272 193 172 221 238 145 60 30 119

133 182 118 290 340 353 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 286: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

275

193 272

145 172 221 238

23 60 30 119 133 182 118 290

340 353 357 374 376 394

Vector:

275 193 272 145 172 221 238 23 60 30 119

133 182 118 290 340 353 357 374 376 394

Intercambio y congelamiento

118

193 272

145 172 221 238

23 60 30 119 133 182 275 290

340 353 357 374 376 394

Vector:

118 193 272 145 172 221 238 23 60 30 119

133 182 275 290 340 353 357 374 376 394

Swapdown

272

193 238

145 172 221 118

23 60 30 119 133 182 275 290

340 353 357 374 376 394

Vector:

272 193 238 145 172 221 118 23 60 30 119

133 182 275 290 340 353 357 374 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 287: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

182

193 238

145 172 221 118

23 60 30 119 133 272 275 290

340 353 357 374 376 394

Vector:

182 193 238 145 172 221 118 23 60 30 119

133 272 275 290 340 353 357 374 376 394

Swapdown

238

193 221

145 172 182 118

23 60 30 119 133 272 275 290

340 353 357 374 376 394

Vector:

238 193 221 145 172 182 118 23 60 30 119

133 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

133

193 221

145 172 182 118

23 60 30 119 238 272 275 290

340 353 357 374 376 394

Vector:

133 193 221 145 172 182 118 23 60 30 119

238 272 275 290 340 353 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 288: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

221

193 182

145 172 133 118

23 60 30 119 238 272 275 290

340 353 357 374 376 394

Vector:

221 193 182 145 172 133 118 23 60 30 119

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

119

193 182

145 172 133 118

23 60 30 221 238 272 275 290

340 353 357 374 376 394

Vector:

119 193 182 145 172 133 118 23 60 30 221

238 272 275 290 340 353 357 374 376 394

Swapdown

193

172 182

145 119 133 118

23 60 30 221 238 272 275 290

340 353 357 374 376 394

Vector:

193 172 182 145 119 133 118 23 60 30 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 289: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

30

172 182

145 119 133 118

23 60 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

30 172 182 145 119 133 118 23 60 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

182

172 133

145 119 30 118

23 60 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

182 172 133 145 119 30 118 23 60 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

60

172 133

145 119 30 118

23 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

60 172 133 145 119 30 118 23 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 290: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

172

145 133

60 119 30 118

23 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

172 145 133 60 119 30 118 23 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

23

145 133

60 119 30 118

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

23 145 133 60 119 30 118 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

145

119 133

60 23 30 118

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

145 119 133 60 23 30 118 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 291: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

118

119 133

60 23 30 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

118 119 133 60 23 30 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

133

119 118

60 23 30 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

133 119 118 60 23 30 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

30

119 118

60 23 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

30 119 118 60 23 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 292: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

119

60 118

30 23 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

119 60 118 30 23 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

23

60 118

30 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

23 60 118 30 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

118

60 23

30 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

118 60 23 30 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 293: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

30

60 23

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

30 60 23 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

60

30 23

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

60 30 23 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

23

30 60

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

23 30 60 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 294: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.4 Heap Sort descendente

30

23 60

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

30 23 60 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Intercambio y congelamiento

23

30 60

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

23 30 60 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

Swapdown

23

30 60

118 119 133 145

172 182 193 221 238 272 275 290

340 353 357 374 376 394

Vector:

23 30 60 118 119 133 145 172 182 193 221

238 272 275 290 340 353 357 374 376 394

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

Enrique P. Calot Algoritmos y Programacion II

Page 295: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

3.4.1. Arbol inicial

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357

Arbol inicial y su vector asociadoHeapfy paso 0

30

290 182

340 394 133 118

374 119 353 376 272 221 238 23

60 145 193 275 172 357

Vector:

30 290 182 340 394 133 118 374 119 353 376

272 221 238 23 60 145 193 275 172 357

Heapfy paso 1

30

290 182

340 394 133 118

60 119 172 376 272 221 238 23

374 145 193 275 353 357

Vector:

30 290 182 340 394 133 118 60 119 172 376

272 221 238 23 374 145 193 275 353 357

Heapfy paso 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 296: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

30

290 182

60 172 133 23

145 119 353 376 272 221 238 118

374 340 193 275 394 357

Vector:

30 290 182 60 172 133 23 145 119 353 376

272 221 238 118 374 340 193 275 394 357

Heapfy paso 3

30

60 23

119 172 133 118

145 193 353 376 272 221 238 182

374 340 290 275 394 357

Vector:

30 60 23 119 172 133 118 145 193 353 376

272 221 238 182 374 340 290 275 394 357

Heapfy paso 4

23

60 30

119 172 133 118

145 193 353 376 272 221 238 182

374 340 290 275 394 357

Vector:

23 60 30 119 172 133 118 145 193 353 376

272 221 238 182 374 340 290 275 394 357

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 297: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

357

60 30

119 172 133 118

145 193 353 376 272 221 238 182

374 340 290 275 394 23

Vector:

357 60 30 119 172 133 118 145 193 353 376

272 221 238 182 374 340 290 275 394 23

Swapdown

30

60 118

119 172 133 182

145 193 353 376 272 221 238 357

374 340 290 275 394 23

Vector:

30 60 118 119 172 133 182 145 193 353 376

272 221 238 357 374 340 290 275 394 23

Intercambio y congelamiento

394

60 118

119 172 133 182

145 193 353 376 272 221 238 357

374 340 290 275 30 23

Vector:

394 60 118 119 172 133 182 145 193 353 376

272 221 238 357 374 340 290 275 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 298: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

60

119 118

145 172 133 182

340 193 353 376 272 221 238 357

374 394 290 275 30 23

Vector:

60 119 118 145 172 133 182 340 193 353 376

272 221 238 357 374 394 290 275 30 23

Intercambio y congelamiento

275

119 118

145 172 133 182

340 193 353 376 272 221 238 357

374 394 290 60 30 23

Vector:

275 119 118 145 172 133 182 340 193 353 376

272 221 238 357 374 394 290 60 30 23

Swapdown

118

119 133

145 172 221 182

340 193 353 376 272 275 238 357

374 394 290 60 30 23

Vector:

118 119 133 145 172 221 182 340 193 353 376

272 275 238 357 374 394 290 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 299: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

290

119 133

145 172 221 182

340 193 353 376 272 275 238 357

374 394 118 60 30 23

Vector:

290 119 133 145 172 221 182 340 193 353 376

272 275 238 357 374 394 118 60 30 23

Swapdown

119

145 133

193 172 221 182

340 290 353 376 272 275 238 357

374 394 118 60 30 23

Vector:

119 145 133 193 172 221 182 340 290 353 376

272 275 238 357 374 394 118 60 30 23

Intercambio y congelamiento

394

145 133

193 172 221 182

340 290 353 376 272 275 238 357

374 119 118 60 30 23

Vector:

394 145 133 193 172 221 182 340 290 353 376

272 275 238 357 374 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 300: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

133

145 182

193 172 221 238

340 290 353 376 272 275 394 357

374 119 118 60 30 23

Vector:

133 145 182 193 172 221 238 340 290 353 376

272 275 394 357 374 119 118 60 30 23

Intercambio y congelamiento

374

145 182

193 172 221 238

340 290 353 376 272 275 394 357

133 119 118 60 30 23

Vector:

374 145 182 193 172 221 238 340 290 353 376

272 275 394 357 133 119 118 60 30 23

Swapdown

145

172 182

193 353 221 238

340 290 374 376 272 275 394 357

133 119 118 60 30 23

Vector:

145 172 182 193 353 221 238 340 290 374 376

272 275 394 357 133 119 118 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 301: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

357

172 182

193 353 221 238

340 290 374 376 272 275 394 145

133 119 118 60 30 23

Vector:

357 172 182 193 353 221 238 340 290 374 376

272 275 394 145 133 119 118 60 30 23

Swapdown

172

193 182

290 353 221 238

340 357 374 376 272 275 394 145

133 119 118 60 30 23

Vector:

172 193 182 290 353 221 238 340 357 374 376

272 275 394 145 133 119 118 60 30 23

Intercambio y congelamiento

394

193 182

290 353 221 238

340 357 374 376 272 275 172 145

133 119 118 60 30 23

Vector:

394 193 182 290 353 221 238 340 357 374 376

272 275 172 145 133 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 302: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

182

193 221

290 353 272 238

340 357 374 376 394 275 172 145

133 119 118 60 30 23

Vector:

182 193 221 290 353 272 238 340 357 374 376

394 275 172 145 133 119 118 60 30 23

Intercambio y congelamiento

275

193 221

290 353 272 238

340 357 374 376 394 182 172 145

133 119 118 60 30 23

Vector:

275 193 221 290 353 272 238 340 357 374 376

394 182 172 145 133 119 118 60 30 23

Swapdown

193

275 221

290 353 272 238

340 357 374 376 394 182 172 145

133 119 118 60 30 23

Vector:

193 275 221 290 353 272 238 340 357 374 376

394 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 303: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

394

275 221

290 353 272 238

340 357 374 376 193 182 172 145

133 119 118 60 30 23

Vector:

394 275 221 290 353 272 238 340 357 374 376

193 182 172 145 133 119 118 60 30 23

Swapdown

221

275 238

290 353 272 394

340 357 374 376 193 182 172 145

133 119 118 60 30 23

Vector:

221 275 238 290 353 272 394 340 357 374 376

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

376

275 238

290 353 272 394

340 357 374 221 193 182 172 145

133 119 118 60 30 23

Vector:

376 275 238 290 353 272 394 340 357 374 221

193 182 172 145 133 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 304: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

238

275 272

290 353 376 394

340 357 374 221 193 182 172 145

133 119 118 60 30 23

Vector:

238 275 272 290 353 376 394 340 357 374 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

374

275 272

290 353 376 394

340 357 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

374 275 272 290 353 376 394 340 357 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

272

275 374

290 353 376 394

340 357 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

272 275 374 290 353 376 394 340 357 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 305: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

357

275 374

290 353 376 394

340 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

357 275 374 290 353 376 394 340 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

275

290 374

340 353 376 394

357 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

275 290 374 340 353 376 394 357 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

357

290 374

340 353 376 394

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

357 290 374 340 353 376 394 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 306: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

290

340 374

357 353 376 394

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

290 340 374 357 353 376 394 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

394

340 374

357 353 376 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 340 374 357 353 376 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

340

353 374

357 394 376 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

340 353 374 357 394 376 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 307: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

376

353 374

357 394 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

376 353 374 357 394 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

353

357 374

376 394 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

353 357 374 376 394 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

394

357 374

376 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 357 374 376 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 308: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

357

376 374

394 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

357 376 374 394 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

394

376 374

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 376 374 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

374

376 394

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

374 376 394 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 309: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 45

394

376 374

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 376 374 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

376

394 374

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

376 394 374 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Intercambio y congelamiento

394

376 374

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 376 374 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 310: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.5 Merge Polifasico de las salidas por seleccion de reemplazo

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 5: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

30, 133, 182, 290,340, 353, 374, 376,394

118, 119, 221, 238,272, 275

23, 60, 145, 172, 193,357

Cuadro 6: Fase 1

394

376 374

357 353 340 290

275 272 238 221 193 182 172 145

133 119 118 60 30 23

Vector:

394 376 374 357 353 340 290 275 272 238 221

193 182 172 145 133 119 118 60 30 23

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.

Enrique P. Calot Algoritmos y Programacion II

Page 311: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.6 Merge Polifasico de las particiones marcadas 47

E1 E2 E3 S

30, 133, 182, 290,340, 353, 374, 376,394

118, 119, 221, 238,272, 275

23, 60, 145, 172, 193,357

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 7: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 8: Calculo de la distribucion de columnas y dummies

Por ejemplo p1 = {30, 182, 290, 340, 394}; p2 = {118, 133, 374}; . . . ; p6 = {145, 193}; p7 = {172, 275, 357}.

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

E1 E2 E3 S

D D 30, 182, 290, 340, 394 –118, 133, 374 119 353, 376 –23, 60, 221, 238, 272 145, 193 – –172, 275, 357 – – –

Cuadro 9: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 312: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.6 Merge Polifasico de las particiones marcadas

E1 E2 E3 S

D D 30, 182, 290, 340, 394 30, 182, 290, 340, 394118, 133, 374 119 353, 376 118, 119, 133, 353,

374, 376

E1 E2 S E3

23, 60, 221, 238, 272 145, 193 – 30, 182, 290, 340, 394172, 275, 357 – – 118, 119, 133, 353,

374, 376

Cuadro 10: Fase 2

E1 E2 E3 S

D D 30, 182, 290, 340, 394 30, 182, 290, 340, 394118, 133, 374 119 353, 376 118, 119, 133, 353,

374, 376

E1 E2 S E3

23, 60, 221, 238, 272 145, 193 23, 30, 60, 145, 182,193, 221, 238, 272,290, 340, 394

30, 182, 290, 340, 394

E1 S E2 E3

172, 275, 357 – 23, 30, 60, 145, 182,193, 221, 238, 272,290, 340, 394

118, 119, 133, 353,374, 376

Cuadro 11: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 313: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico completo con particiones formadas de 1 elemento 49

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 12: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –D D D –D D D –D 30 290 –182 340 394 –133 118 374 –119 353 376 –272 221 – –238 23 – –60 145 – –193 275 – –172 – – –357 – – –

Cuadro 13: Fase 1

3.7. Merge Polifasico completo con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 314: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 – D

238 23 – D

60 145 – D

193 275 – 30, 290172 – – 182, 340, 394357 – – 118, 133, 374– – – 119, 353, 376

Cuadro 14: Fase 2

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 221, 272 D

238 23 23, 238 D

60 145 60, 145 D

193 275 30, 193, 275, 290 30, 290

E1 S E2 E3

172 – 221, 272 182, 340, 394357 – 23, 238 118, 133, 374– – 60, 145 119, 353, 376– – 30, 193, 275, 290 –

Cuadro 15: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 315: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 51

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 221, 272 D

238 23 23, 238 D

60 145 60, 145 D

193 275 30, 193, 275, 290 30, 290

E1 S E2 E3

172 172, 182, 221, 272,340, 394

221, 272 182, 340, 394

357 23, 118, 133, 238,357, 374

23, 238 118, 133, 374

S E1 E2 E3

– 172, 182, 221, 272,340, 394

60, 145 119, 353, 376

– 23, 118, 133, 238,357, 374

30, 193, 275, 290 –

Cuadro 16: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 316: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 221, 272 D

238 23 23, 238 D

60 145 60, 145 D

193 275 30, 193, 275, 290 30, 290

E1 S E2 E3

172 172, 182, 221, 272,340, 394

221, 272 182, 340, 394

357 23, 118, 133, 238,357, 374

23, 238 118, 133, 374

S E1 E2 E3

60, 119, 145, 172,182, 221, 272, 340,353, 376, 394

172, 182, 221, 272,340, 394

60, 145 119, 353, 376

E3 E1 E2 S

60, 119, 145, 172,182, 221, 272, 340,353, 376, 394

23, 118, 133, 238,357, 374

30, 193, 275, 290 –

Cuadro 17: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 317: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 53

E1 E2 E3 S

D D D D

D D D D

D D D D

D 30 290 30, 290182 340 394 182, 340, 394133 118 374 118, 133, 374119 353 376 119, 353, 376

E1 E2 S E3

272 221 221, 272 D

238 23 23, 238 D

60 145 60, 145 D

193 275 30, 193, 275, 290 30, 290

E1 S E2 E3

172 172, 182, 221, 272,340, 394

221, 272 182, 340, 394

357 23, 118, 133, 238,357, 374

23, 238 118, 133, 374

S E1 E2 E3

60, 119, 145, 172,182, 221, 272, 340,353, 376, 394

172, 182, 221, 272,340, 394

60, 145 119, 353, 376

E3 E1 E2 S

60, 119, 145, 172,182, 221, 272, 340,353, 376, 394

23, 118, 133, 238,357, 374

30, 193, 275, 290 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E1 E2 E3

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 18: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 318: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 3 elementos

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 19: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –D D D –30, 290 182, 340 133, 394 –118, 374 119, 353 272, 376 –221, 238 23, 60 – –145, 193 172, 275 – –357 – – –

Cuadro 20: Fase 1

Por ejemplo p1 = {30, 290}; p2 = {182, 340}; . . . ; p10 = {172, 275}; p11 = {357}.

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {30, 182, 290}; p2 = {133, 340, 394}; . . . ; p6 = {60, 145, 193}; p7 = {172, 275, 357}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 319: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 55

E1 E2 E3 S

D D D D

D D D D

30, 290 182, 340 133, 394 30, 133, 182, 290,340, 394

118, 374 119, 353 272, 376 118, 119, 272, 353,374, 376

E1 E2 S E3

221, 238 23, 60 – D

145, 193 172, 275 – D

357 – – 30, 133, 182, 290,340, 394

– – – 118, 119, 272, 353,374, 376

Cuadro 21: Fase 2

E1 E2 E3 S

D D D D

D D D D

30, 290 182, 340 133, 394 30, 133, 182, 290,340, 394

118, 374 119, 353 272, 376 118, 119, 272, 353,374, 376

E1 E2 S E3

221, 238 23, 60 23, 60, 221, 238 D

145, 193 172, 275 145, 172, 193, 275 D

E1 S E2 E3

357 – 23, 60, 221, 238 30, 133, 182, 290,340, 394

– – 145, 172, 193, 275 118, 119, 272, 353,374, 376

Cuadro 22: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 320: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.10 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

D D D D

30, 290 182, 340 133, 394 30, 133, 182, 290,340, 394

118, 374 119, 353 272, 376 118, 119, 272, 353,374, 376

E1 E2 S E3

221, 238 23, 60 23, 60, 221, 238 D

145, 193 172, 275 145, 172, 193, 275 D

E1 S E2 E3

357 23, 30, 60, 133, 182,221, 238, 290, 340,357, 394

23, 60, 221, 238 30, 133, 182, 290,340, 394

S E1 E2 E3

– 23, 30, 60, 133, 182,221, 238, 290, 340,357, 394

145, 172, 193, 275 118, 119, 272, 353,374, 376

Cuadro 23: Fase 4

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.10. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {30, 182, 290, 340}; p2 = {118, 133, 374, 394}; p3 = {119, 272, 353, 376}; p4 ={23, 60, 221, 238}; p5 = {145, 172, 193, 275}; p6 = {357}.

3.10.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.10.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 321: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Merge Polifasico con particiones formadas de 4 elementos 57

E1 E2 E3 S

D D D D

D D D D

30, 290 182, 340 133, 394 30, 133, 182, 290,340, 394

118, 374 119, 353 272, 376 118, 119, 272, 353,374, 376

E1 E2 S E3

221, 238 23, 60 23, 60, 221, 238 D

145, 193 172, 275 145, 172, 193, 275 D

E1 S E2 E3

357 23, 30, 60, 133, 182,221, 238, 290, 340,357, 394

23, 60, 221, 238 30, 133, 182, 290,340, 394

S E1 E2 E3

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

23, 30, 60, 133, 182,221, 238, 290, 340,357, 394

145, 172, 193, 275 118, 119, 272, 353,374, 376

E1 S E2 E3

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

– – –

Cuadro 24: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 25: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 30, 182, 290 –133, 340, 394 118, 119, 374 272, 353, 376 –23, 221, 238 60, 145, 193 – –172, 275, 357 – – –

Cuadro 26: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 322: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.10 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D 30, 182, 290 30, 182, 290133, 340, 394 118, 119, 374 272, 353, 376 118, 119, 133, 272,

340, 353, 374, 376,394

E1 E2 S E3

23, 221, 238 60, 145, 193 – 30, 182, 290172, 275, 357 – – 118, 119, 133, 272,

340, 353, 374, 376,394

Cuadro 27: Fase 2

E1 E2 E3 S

D D 30, 182, 290 30, 182, 290133, 340, 394 118, 119, 374 272, 353, 376 118, 119, 133, 272,

340, 353, 374, 376,394

E1 E2 S E3

23, 221, 238 60, 145, 193 23, 30, 60, 145, 182,193, 221, 238, 290

30, 182, 290

E1 S E2 E3

172, 275, 357 – 23, 30, 60, 145, 182,193, 221, 238, 290

118, 119, 133, 272,340, 353, 374, 376,394

Cuadro 28: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 323: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Merge Polifasico con particiones formadas de 4 elementos 59

E1 E2 E3 S

D D 30, 182, 290 30, 182, 290133, 340, 394 118, 119, 374 272, 353, 376 118, 119, 133, 272,

340, 353, 374, 376,394

E1 E2 S E3

23, 221, 238 60, 145, 193 23, 30, 60, 145, 182,193, 221, 238, 290

30, 182, 290

E1 S E2 E3

172, 275, 357 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

23, 30, 60, 145, 182,193, 221, 238, 290

118, 119, 133, 272,340, 353, 374, 376,394

S E1 E2 E3

– 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

– –

Cuadro 29: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 30: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –30, 182, 290, 340 118, 133, 374, 394 119, 272, 353, 376 –23, 60, 221, 238 145, 172, 193, 275 – –357 – – –

Cuadro 31: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 324: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.10 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

30, 182, 290, 340 118, 133, 374, 394 119, 272, 353, 376 30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

E1 E2 S E3

23, 60, 221, 238 145, 172, 193, 275 – D

357 – – 30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

Cuadro 32: Fase 2

E1 E2 E3 S

D D D D

30, 182, 290, 340 118, 133, 374, 394 119, 272, 353, 376 30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

E1 E2 S E3

23, 60, 221, 238 145, 172, 193, 275 23, 60, 145, 172, 193,221, 238, 275

D

E1 S E2 E3

357 – 23, 60, 145, 172, 193,221, 238, 275

30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

Cuadro 33: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 325: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 61

E1 E2 E3 S

D D D D

30, 182, 290, 340 118, 133, 374, 394 119, 272, 353, 376 30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

E1 E2 S E3

23, 60, 221, 238 145, 172, 193, 275 23, 60, 145, 172, 193,221, 238, 275

D

E1 S E2 E3

357 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

23, 60, 145, 172, 193,221, 238, 275

30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

S E1 E2 E3

– 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

– –

Cuadro 34: Fase final

3.11. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

3.11.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 326: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.12 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

b1 b2 Sale Entra

– – Nada 30

30 – Nada 290

30 290 30 182

182 290 182 340

340 290 290 394

340 394 340 133

133 394 394 118

133 118

Nueva particion! Se cierra la particion p1 = {30, 182, 290, 340, 394}118 374

133 374 133 119

119 374 374 353

119 353

Nueva particion! Se cierra la particion p2 = {118, 133, 374}119 376

376 353 353 272

376 272 376 221

221 272

Nueva particion! Se cierra la particion p3 = {119, 353, 376}221 238

238 272 238 23

23 272 272 60

23 60

Nueva particion! Se cierra la particion p4 = {221, 238, 272}23 145

145 60 60 193

145 193 145 275

275 193 193 172

275 172 275 357

357 172 357 Nada

– 172

Nueva particion! Se cierra la particion p5 = {23, 60, 145, 193, 275, 357}172 Nada

Finaliza la ultima particion en p6 = {172}

3.11.2. Salida final

p1 = {30, 182, 290, 340, 394};

p2 = {118, 133, 374};

p3 = {119, 353, 376};

p4 = {221, 238, 272};

p5 = {23, 60, 145, 193, 275, 357};

p6 = {172}.

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 327: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 63

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 35: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –30, 182, 290, 340, 394 118, 133, 374 119, 353, 376 –221, 238, 272 23, 60, 145, 193, 275,

357– –

172 – – –

Cuadro 36: Fase 1

3.12.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.12.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.13. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

30, 182, 290, 340, 394 118, 133, 374 119, 353, 376 30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

E1 E2 S E3

221, 238, 272 23, 60, 145, 193, 275,357

– D

172 – – 30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

Cuadro 37: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 328: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Seleccion Natural con buffers de tamano 2

E1 E2 E3 S

D D D D

30, 182, 290, 340, 394 118, 133, 374 119, 353, 376 30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

E1 E2 S E3

221, 238, 272 23, 60, 145, 193, 275,357

23, 60, 145, 193, 221,238, 272, 275, 357

D

E1 S E2 E3

172 – 23, 60, 145, 193, 221,238, 272, 275, 357

30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

Cuadro 38: Fase 3

E1 E2 E3 S

D D D D

30, 182, 290, 340, 394 118, 133, 374 119, 353, 376 30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

E1 E2 S E3

221, 238, 272 23, 60, 145, 193, 275,357

23, 60, 145, 193, 221,238, 272, 275, 357

D

E1 S E2 E3

172 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

23, 60, 145, 193, 221,238, 272, 275, 357

30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

S E1 E2 E3

– 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

– –

Cuadro 39: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 329: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 65

3.13.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 30

30 – – – Nada 290

30 290 – – 30 182

182 290 – – 182 340

340 290 – – 290 394

340 394 – – 340 133

– 394 133 – Nada 118

– 394 133 118 394 Nada

133 118 – –

Nueva particion! Se cierra la particion p1 = {30, 182, 290, 340, 394}118 374

133 374 – – 133 119

– 374 119 – Nada 353

353 374 119 – 353 376

376 374 119 – 374 272

376 – 119 272 376 Nada

119 272 – –

Nueva particion! Se cierra la particion p2 = {118, 133, 353, 374, 376}119 221

221 272 – – 221 238

238 272 – – 238 23

– 272 23 – Nada 60

– 272 23 60 272 Nada

23 60 – –

Nueva particion! Se cierra la particion p3 = {119, 221, 238, 272}23 145

145 60 – – 60 193

145 193 – – 145 275

275 193 – – 193 172

275 – 172 – Nada 357

275 357 172 – 275 Nada

– 357 172 – 357 Nada

172 – – –

Nueva particion! Se cierra la particion p4 = {23, 60, 145, 193, 275, 357}172 Nada

Finaliza la ultima particion en p5 = {172}

3.13.2. Salida final

p1 = {30, 182, 290, 340, 394};

p2 = {118, 133, 353, 374, 376};

p3 = {119, 221, 238, 272};

p4 = {23, 60, 145, 193, 275, 357};

p5 = {172}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 330: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 40: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

30, 182, 290, 340, 394 118, 133, 353, 374,376

119, 221, 238, 272 –

23, 60, 145, 193, 275,357

172 – –

Cuadro 41: Fase 1

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.14.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.14.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

E1 E2 E3 S

30, 182, 290, 340, 394 118, 133, 353, 374,376

119, 221, 238, 272 30, 118, 119, 133,182, 221, 238, 272,290, 340, 353, 374,376, 394

E1 E2 S E3

23, 60, 145, 193, 275,357

172 – 30, 118, 119, 133,182, 221, 238, 272,290, 340, 353, 374,376, 394

Cuadro 42: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 331: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.15 Seleccion de reemplazo con buffer de tamano 3 67

E1 E2 E3 S

30, 182, 290, 340, 394 118, 133, 353, 374,376

119, 221, 238, 272 30, 118, 119, 133,182, 221, 238, 272,290, 340, 353, 374,376, 394

E1 E2 S E3

23, 60, 145, 193, 275,357

172 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

30, 118, 119, 133,182, 221, 238, 272,290, 340, 353, 374,376, 394

S E2 E1 E3

– – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 43: Fase final

3.15. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

3.15.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 332: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.16 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3

b1 b2 b3 Sale Entra

– – – Nada 30

30 – – Nada 290

30 290 – Nada 182

30 290 182 30 340

340 290 182 182 394

340 290 394 290 133

340 133 394 340 118

118 133 394 394 374

118 133 374

Nueva particion! Se cierra la particion p1 = {30, 182, 290, 340, 394}118 119

119 133 374 119 353

353 133 374 133 376

353 376 374 353 272

272 376 374 374 221

272 376 221 376 238

272 238 221

Nueva particion! Se cierra la particion p2 =

{118, 119, 133, 353, 374, 376}221 23

272 238 23 238 60

272 60 23 272 145

145 60 23

Nueva particion! Se cierra la particion p3 = {221, 238, 272}23 193

145 60 193 60 275

145 275 193 145 172

172 275 193 172 357

357 275 193 193 Nada

357 275 – 275 Nada

357 – – 357 Nada

Finaliza la ultima particion en p4 = {23, 60, 145, 172, 193, 275, 357}

3.15.2. Salida final

p1 = {30, 182, 290, 340, 394};

p2 = {118, 119, 133, 353, 374, 376};

p3 = {221, 238, 272};

p4 = {23, 60, 145, 172, 193, 275, 357}.

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.16.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 333: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Seleccion Natural con buffers de tamano 3 69

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 44: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 30, 182, 290, 340, 394 118, 119, 133, 353,374, 376

221, 238, 272 23, 60, 145, 172, 193,275, 357

– –

Cuadro 45: Fase 1

3.16.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.17. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.17.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

D 30, 182, 290, 340, 394 118, 119, 133, 353,374, 376

30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

E1 E2 S E3

221, 238, 272 23, 60, 145, 172, 193,275, 357

– 30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

Cuadro 46: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 334: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.17 Seleccion Natural con buffers de tamano 3

E1 E2 E3 S

D 30, 182, 290, 340, 394 118, 119, 133, 353,374, 376

30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

E1 E2 S E3

221, 238, 272 23, 60, 145, 172, 193,275, 357

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

30, 118, 119, 133,182, 290, 340, 353,374, 376, 394

S E2 E1 E3

– – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 47: Fase final

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 30

30 – – – – – Nada 290

30 290 – – – – Nada 182

30 290 182 – – – 30 340

340 290 182 – – – 182 394

340 290 394 – – – 290 133

340 – 394 133 – – Nada 118

340 – 394 133 118 – Nada 374

340 374 394 133 118 – 340 119

– 374 394 133 118 119 374 Nada

– – 394 133 118 119 394 Nada

133 118 119 – – –

Nueva particion! Se cierra la particion p1 = {30, 182, 290, 340, 374, 394}118 353

133 353 119 – – – 119 376

133 353 376 – – – 133 272

272 353 376 – – – 272 221

– 353 376 221 – – Nada 238

– 353 376 221 238 – Nada 23

– 353 376 221 238 23 353 Nada

– – 376 221 238 23 376 Nada

221 238 23 – – –

Nueva particion! Se cierra la particion p2 = {118, 119, 133, 272, 353, 376}23 60

221 238 60 – – – 60 145

221 238 145 – – – 145 193

221 238 193 – – – 193 275

221 238 275 – – – 221 172

– 238 275 172 – – Nada 357

357 238 275 172 – – 238 Nada

357 – 275 172 – – 275 Nada

357 – – 172 – – 357 Nada

172 – – – – –

Nueva particion! Se cierra la particion p3 = {23, 60, 145, 193, 221, 238, 275, 357}172 Nada

Finaliza la ultima particion en p4 = {172}

Enrique P. Calot Algoritmos y Programacion II

Page 335: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.18 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 71

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 48: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 30, 182, 290, 340,374, 394

118, 119, 133, 272,353, 376

23, 60, 145, 193, 221,238, 275, 357

172 – –

Cuadro 49: Fase 1

3.17.2. Salida final

p1 = {30, 182, 290, 340, 374, 394};

p2 = {118, 119, 133, 272, 353, 376};

p3 = {23, 60, 145, 193, 221, 238, 275, 357};

p4 = {172}.

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.18.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.18.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.19. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 336: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.19 Seleccion de reemplazo con buffer de tamano 4

E1 E2 E3 S

D 30, 182, 290, 340,374, 394

118, 119, 133, 272,353, 376

30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

E1 E2 S E3

23, 60, 145, 193, 221,238, 275, 357

172 – 30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

Cuadro 50: Fase 2

E1 E2 E3 S

D 30, 182, 290, 340,374, 394

118, 119, 133, 272,353, 376

30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

E1 E2 S E3

23, 60, 145, 193, 221,238, 275, 357

172 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

30, 118, 119, 133,182, 272, 290, 340,353, 374, 376, 394

S E2 E1 E3

– – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 51: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 337: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.20 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 73

3.19.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 b4 Sale Entra

– – – – Nada 30

30 – – – Nada 290

30 290 – – Nada 182

30 290 182 – Nada 340

30 290 182 340 30 394

394 290 182 340 182 133

394 290 133 340 290 118

394 118 133 340 340 374

394 118 133 374 374 119

394 118 133 119 394 353

353 118 133 119

Nueva particion! Se cierra la particion p1 =

{30, 182, 290, 340, 374, 394}118 376

353 376 133 119 119 272

353 376 133 272 133 221

353 376 221 272 221 238

353 376 238 272 238 23

353 376 23 272 272 60

353 376 23 60 353 145

145 376 23 60 376 193

145 193 23 60

Nueva particion! Se cierra la particion p2 =

{118, 119, 133, 221, 238, 272, 353, 376}23 275

145 193 275 60 60 172

145 193 275 172 145 357

357 193 275 172 172 Nada

357 193 275 – 193 Nada

357 – 275 – 275 Nada

357 – – – 357 Nada

Finaliza la ultima particion en p3 = {23, 60, 145, 172, 193, 275, 357}

3.19.2. Salida final

p1 = {30, 182, 290, 340, 374, 394};

p2 = {118, 119, 133, 221, 238, 272, 353, 376};

p3 = {23, 60, 145, 172, 193, 275, 357}.

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.20.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 338: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.21 Seleccion Natural con buffers de tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

30, 182, 290, 340,374, 394

118, 119, 133, 221,238, 272, 353, 376

23, 60, 145, 172, 193,275, 357

Cuadro 53: Fase 1

3.20.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.21. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

3.21.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 339: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.21 Seleccion Natural con buffers de tamano 4 75

E1 E2 E3 S

30, 182, 290, 340,374, 394

118, 119, 133, 221,238, 272, 353, 376

23, 60, 145, 172, 193,275, 357

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 54: Fase final

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 30

30 – – – – – – – Nada 290

30 290 – – – – – – Nada 182

30 290 182 – – – – – Nada 340

30 290 182 340 – – – – 30 394

394 290 182 340 – – – – 182 133

394 290 – 340 133 – – – Nada 118

394 290 – 340 133 118 – – Nada 374

394 290 374 340 133 118 – – 290 119

394 – 374 340 133 118 119 – Nada 353

394 353 374 340 133 118 119 – 340 376

394 353 374 376 133 118 119 – 353 272

394 – 374 376 133 118 119 272 374 Nada

394 – – 376 133 118 119 272 376 Nada

394 – – – 133 118 119 272 394 Nada

133 118 119 272 – – – –

Nueva particion! Se cierra la particion p1 = {30, 182, 290, 340, 353, 374, 376, 394}118 221

133 221 119 272 – – – – 119 238

133 221 238 272 – – – – 133 23

– 221 238 272 23 – – – Nada 60

– 221 238 272 23 60 – – Nada 145

145 221 238 272 23 60 – – 145 193

193 221 238 272 23 60 – – 193 275

275 221 238 272 23 60 – – 221 172

275 – 238 272 23 60 172 – Nada 357

275 357 238 272 23 60 172 – 238 Nada

275 357 – 272 23 60 172 – 272 Nada

275 357 – – 23 60 172 – 275 Nada

– 357 – – 23 60 172 – 357 Nada

23 60 172 – – – – –

Nueva particion! Se cierra la particion p2 = {118, 119, 133, 145, 193, 221, 238, 272, 275, 357}23 Nada

– 60 172 – – – – – 60 Nada

– – 172 – – – – – 172 Nada

Finaliza la ultima particion en p3 = {23, 60, 172}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 340: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.22 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

30, 182, 290, 340,353, 374, 376, 394

118, 119, 133, 145,193, 221, 238, 272,275, 357

23, 60, 172 –

Cuadro 56: Fase 1

3.21.2. Salida final

p1 = {30, 182, 290, 340, 353, 374, 376, 394};

p2 = {118, 119, 133, 145, 193, 221, 238, 272, 275, 357};

p3 = {23, 60, 172}.

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.22.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.22.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.23. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.23.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 341: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.23 Seleccion Natural con buffers de tamano 5 77

E1 E2 E3 S

30, 182, 290, 340,353, 374, 376, 394

118, 119, 133, 145,193, 221, 238, 272,275, 357

23, 60, 172 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 57: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 30

30 – – – – – – – – – Nada 290

30 290 – – – – – – – – Nada 182

30 290 182 – – – – – – – Nada 340

30 290 182 340 – – – – – – Nada 394

30 290 182 340 394 – – – – – 30 133

133 290 182 340 394 – – – – – 133 118

– 290 182 340 394 118 – – – – Nada 374

374 290 182 340 394 118 – – – – 182 119

374 290 – 340 394 118 119 – – – Nada 353

374 290 353 340 394 118 119 – – – 290 376

374 376 353 340 394 118 119 – – – 340 272

374 376 353 – 394 118 119 272 – – Nada 221

374 376 353 – 394 118 119 272 221 – Nada 238

374 376 353 – 394 118 119 272 221 238 353 Nada

374 376 – – 394 118 119 272 221 238 374 Nada

– 376 – – 394 118 119 272 221 238 376 Nada

– – – – 394 118 119 272 221 238 394 Nada

118 119 272 221 238 – – – – –

Nueva particion! Se cierra la particion p1 = {30, 133, 182, 290, 340, 353, 374, 376, 394}118 23

– 119 272 221 238 23 – – – – Nada 60

– 119 272 221 238 23 60 – – – Nada 145

145 119 272 221 238 23 60 – – – 119 193

145 193 272 221 238 23 60 – – – 145 275

275 193 272 221 238 23 60 – – – 193 172

275 – 272 221 238 23 60 172 – – Nada 357

275 357 272 221 238 23 60 172 – – 221 Nada

275 357 272 – 238 23 60 172 – – 238 Nada

275 357 272 – – 23 60 172 – – 272 Nada

275 357 – – – 23 60 172 – – 275 Nada

– 357 – – – 23 60 172 – – 357 Nada

23 60 172 – – – – – – –

Nueva particion! Se cierra la particion p2 = {118, 119, 145, 193, 221, 238, 272, 275, 357}23 Nada

– 60 172 – – – – – – – 60 Nada

– – 172 – – – – – – – 172 Nada

Finaliza la ultima particion en p3 = {23, 60, 172}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 342: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.24 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 58: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

30, 133, 182, 290,340, 353, 374, 376,394

118, 119, 145, 193,221, 238, 272, 275,357

23, 60, 172 –

Cuadro 59: Fase 1

3.23.2. Salida final

p1 = {30, 133, 182, 290, 340, 353, 374, 376, 394};

p2 = {118, 119, 145, 193, 221, 238, 272, 275, 357};

p3 = {23, 60, 172}.

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.24.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.24.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.25. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.25.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 343: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.25 Seleccion de reemplazo con buffer de tamano 6 79

E1 E2 E3 S

30, 133, 182, 290,340, 353, 374, 376,394

118, 119, 145, 193,221, 238, 272, 275,357

23, 60, 172 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 60: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 30

30 – – – – – Nada 290

30 290 – – – – Nada 182

30 290 182 – – – Nada 340

30 290 182 340 – – Nada 394

30 290 182 340 394 – Nada 133

30 290 182 340 394 133 30 118

118 290 182 340 394 133 118 374

374 290 182 340 394 133 133 119

374 290 182 340 394 119 182 353

374 290 353 340 394 119 290 376

374 376 353 340 394 119 340 272

374 376 353 272 394 119 353 221

374 376 221 272 394 119 374 238

238 376 221 272 394 119 376 23

238 23 221 272 394 119 394 60

238 23 221 272 60 119

Nueva particion! Se cierra la particion p1 =

{30, 118, 133, 182, 290, 340, 353, 374, 376, 394}23 145

238 145 221 272 60 119 60 193

238 145 221 272 193 119 119 275

238 145 221 272 193 275 145 172

238 172 221 272 193 275 172 357

238 357 221 272 193 275 193 Nada

238 357 221 272 – 275 221 Nada

238 357 – 272 – 275 238 Nada

– 357 – 272 – 275 272 Nada

– 357 – – – 275 275 Nada

– 357 – – – – 357 Nada

Finaliza la ultima particion en p2 =

{23, 60, 119, 145, 172, 193, 221, 238, 272, 275, 357}

3.25.2. Salida final

p1 = {30, 118, 133, 182, 290, 340, 353, 374, 376, 394};

p2 = {23, 60, 119, 145, 172, 193, 221, 238, 272, 275, 357}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 344: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.26 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 61: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 30, 118, 133, 182,290, 340, 353, 374,376, 394

23, 60, 119, 145, 172,193, 221, 238, 272,275, 357

Cuadro 62: Fase 1

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.26.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.26.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.27. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.27.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 345: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.27 Seleccion Natural con buffers de tamano 6 81

E1 E2 E3 S

D 30, 118, 133, 182,290, 340, 353, 374,376, 394

23, 60, 119, 145, 172,193, 221, 238, 272,275, 357

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 63: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 30

30 – – – – – – – – – – – Nada 290

30 290 – – – – – – – – – – Nada 182

30 290 182 – – – – – – – – – Nada 340

30 290 182 340 – – – – – – – – Nada 394

30 290 182 340 394 – – – – – – – Nada 133

30 290 182 340 394 133 – – – – – – 30 118

118 290 182 340 394 133 – – – – – – 118 374

374 290 182 340 394 133 – – – – – – 133 119

374 290 182 340 394 – 119 – – – – – Nada 353

374 290 182 340 394 353 119 – – – – – 182 376

374 290 376 340 394 353 119 – – – – – 290 272

374 – 376 340 394 353 119 272 – – – – Nada 221

374 – 376 340 394 353 119 272 221 – – – Nada 238

374 – 376 340 394 353 119 272 221 238 – – Nada 23

374 – 376 340 394 353 119 272 221 238 23 – Nada 60

374 – 376 340 394 353 119 272 221 238 23 60 340 Nada

374 – 376 – 394 353 119 272 221 238 23 60 353 Nada

374 – 376 – 394 – 119 272 221 238 23 60 374 Nada

– – 376 – 394 – 119 272 221 238 23 60 376 Nada

– – – – 394 – 119 272 221 238 23 60 394 Nada

119 272 221 238 23 60 – – – – – –

Nueva particion! Se cierra la particion p1 = {30, 118, 133, 182, 290, 340, 353, 374, 376, 394}23 145

119 272 221 238 145 60 – – – – – – 60 193

119 272 221 238 145 193 – – – – – – 119 275

275 272 221 238 145 193 – – – – – – 145 172

275 272 221 238 172 193 – – – – – – 172 357

275 272 221 238 357 193 – – – – – – 193 Nada

275 272 221 238 357 – – – – – – – 221 Nada

275 272 – 238 357 – – – – – – – 238 Nada

275 272 – – 357 – – – – – – – 272 Nada

275 – – – 357 – – – – – – – 275 Nada

– – – – 357 – – – – – – – 357 Nada

Finaliza la ultima particion en p2 = {23, 60, 119, 145, 172, 193, 221, 238, 272, 275, 357}

3.27.2. Salida final

p1 = {30, 118, 133, 182, 290, 340, 353, 374, 376, 394};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 346: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.28 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 64: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 30, 118, 133, 182,290, 340, 353, 374,376, 394

23, 60, 119, 145, 172,193, 221, 238, 272,275, 357

Cuadro 65: Fase 1

p2 = {23, 60, 119, 145, 172, 193, 221, 238, 272, 275, 357}.

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.28.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.28.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 347: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.29 Bubble Sort ascendente 83

E1 E2 E3 S

D 30, 118, 133, 182,290, 340, 353, 374,376, 394

23, 60, 119, 145, 172,193, 221, 238, 272,275, 357

23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

S E2 E3 E1

– – – 23, 30, 60, 118, 119,133, 145, 172, 182,193, 221, 238, 272,275, 290, 340, 353,357, 374, 376, 394

Cuadro 66: Fase final

3.29. Bubble Sort ascendente

3.29.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 17/20

1 30 182 290 340 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 394 14/19

2 30 182 290 133 118 340 119 353 374 272 221 238 23 60 145 193 275 172 357 376 394 13/18

3 30 182 133 118 290 119 340 353 272 221 238 23 60 145 193 275 172 357 374 376 394 12/17

4 30 133 118 182 119 290 340 272 221 238 23 60 145 193 275 172 353 357 374 376 394 11/16

5 30 118 133 119 182 290 272 221 238 23 60 145 193 275 172 340 353 357 374 376 394 10/15

6 30 118 119 133 182 272 221 238 23 60 145 193 275 172 290 340 353 357 374 376 394 7/14

7 30 118 119 133 182 221 238 23 60 145 193 272 172 275 290 340 353 357 374 376 394 5/13

8 30 118 119 133 182 221 23 60 145 193 238 172 272 275 290 340 353 357 374 376 394 5/12

9 30 118 119 133 182 23 60 145 193 221 172 238 272 275 290 340 353 357 374 376 394 4/11

10 30 118 119 133 23 60 145 182 193 172 221 238 272 275 290 340 353 357 374 376 394 3/10

11 30 118 119 23 60 133 145 182 172 193 221 238 272 275 290 340 353 357 374 376 394 3/9

12 30 118 23 60 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 2/8

13 30 23 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 1/7

14 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/6

15 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/5

16 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/4

17 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/3

18 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/2

19 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/1

20 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 348: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.30 Bubble Sort descendente

3.30. Bubble Sort descendente

3.30.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 19/20

1 290 182 340 394 133 118 374 119 353 376 272 221 238 30 60 145 193 275 172 357 23 15/19

2 290 340 394 182 133 374 119 353 376 272 221 238 118 60 145 193 275 172 357 30 23 13/18

3 340 394 290 182 374 133 353 376 272 221 238 119 118 145 193 275 172 357 60 30 23 12/17

4 394 340 290 374 182 353 376 272 221 238 133 119 145 193 275 172 357 118 60 30 23 11/16

5 394 340 374 290 353 376 272 221 238 182 133 145 193 275 172 357 119 118 60 30 23 9/15

6 394 374 340 353 376 290 272 238 221 182 145 193 275 172 357 133 119 118 60 30 23 6/14

7 394 374 353 376 340 290 272 238 221 182 193 275 172 357 145 133 119 118 60 30 23 4/13

8 394 374 376 353 340 290 272 238 221 193 275 182 357 172 145 133 119 118 60 30 23 3/12

9 394 376 374 353 340 290 272 238 221 275 193 357 182 172 145 133 119 118 60 30 23 2/11

10 394 376 374 353 340 290 272 238 275 221 357 193 182 172 145 133 119 118 60 30 23 2/10

11 394 376 374 353 340 290 272 275 238 357 221 193 182 172 145 133 119 118 60 30 23 2/9

12 394 376 374 353 340 290 275 272 357 238 221 193 182 172 145 133 119 118 60 30 23 1/8

13 394 376 374 353 340 290 275 357 272 238 221 193 182 172 145 133 119 118 60 30 23 1/7

14 394 376 374 353 340 290 357 275 272 238 221 193 182 172 145 133 119 118 60 30 23 1/6

15 394 376 374 353 340 357 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 1/5

16 394 376 374 353 357 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 1/4

17 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/3

18 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/2

19 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/1

20 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 349: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.31 Bilateral Bubble Sort ascendente 85

3.31. Bilateral Bubble Sort ascendente

3.31.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 17/20

1 30 182 290 340 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 394 15/20

2 23 30 182 290 340 133 118 374 119 353 376 272 221 238 60 145 172 193 275 357 394 13/18

3 23 30 182 290 133 118 340 119 353 374 272 221 238 60 145 172 193 275 357 376 394 11/18

4 23 30 60 182 290 133 118 340 119 353 374 272 221 238 145 172 193 275 357 376 394 11/16

5 23 30 60 182 133 118 290 119 340 353 272 221 238 145 172 193 275 357 374 376 394 8/16

6 23 30 60 118 182 133 119 290 145 340 353 272 221 238 172 193 275 357 374 376 394 9/14

7 23 30 60 118 133 119 182 145 290 340 272 221 238 172 193 275 353 357 374 376 394 7/14

8 23 30 60 118 119 133 145 182 172 290 340 272 221 238 193 275 353 357 374 376 394 6/12

9 23 30 60 118 119 133 145 172 182 290 272 221 238 193 275 340 353 357 374 376 394 4/12

10 23 30 60 118 119 133 145 172 182 193 290 272 221 238 275 340 353 357 374 376 394 4/10

11 23 30 60 118 119 133 145 172 182 193 272 221 238 275 290 340 353 357 374 376 394 1/10

12 23 30 60 118 119 133 145 172 182 193 221 272 238 275 290 340 353 357 374 376 394 1/8

13 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/8

14 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/6

15 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/6

16 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/4

17 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/4

18 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/2

19 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/2

20 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 350: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.32 Bilateral Bubble Sort descendente

3.32. Bilateral Bubble Sort descendente

3.32.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 19/20

1 290 182 340 394 133 118 374 119 353 376 272 221 238 30 60 145 193 275 172 357 23 17/20

2 394 290 182 340 376 133 118 374 119 353 357 272 221 238 30 60 145 193 275 172 23 14/18

3 394 290 340 376 182 133 374 119 353 357 272 221 238 118 60 145 193 275 172 30 23 13/18

4 394 376 290 340 374 182 133 357 119 353 275 272 221 238 118 60 145 193 172 30 23 11/16

5 394 376 340 374 290 182 357 133 353 275 272 221 238 119 118 145 193 172 60 30 23 8/16

6 394 376 374 340 357 290 182 353 133 275 272 238 221 193 119 118 145 172 60 30 23 9/14

7 394 376 374 357 340 290 353 182 275 272 238 221 193 133 119 145 172 118 60 30 23 6/14

8 394 376 374 357 353 340 290 275 182 272 238 221 193 172 133 119 145 118 60 30 23 5/12

9 394 376 374 357 353 340 290 275 272 238 221 193 182 172 133 145 119 118 60 30 23 1/12

10 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/10

11 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/10

12 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/8

13 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/8

14 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/6

15 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/6

16 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/4

17 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/4

18 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/2

19 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/2

20 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 351: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.33 Selection Sort ascendente 87

3.33. Selection Sort ascendente

3.33.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 1/20

1 23 290 182 340 394 133 118 374 119 353 376 272 221 238 30 60 145 193 275 172 357 1/19

2 23 30 182 340 394 133 118 374 119 353 376 272 221 238 290 60 145 193 275 172 357 1/18

3 23 30 60 340 394 133 118 374 119 353 376 272 221 238 290 182 145 193 275 172 357 1/17

4 23 30 60 118 394 133 340 374 119 353 376 272 221 238 290 182 145 193 275 172 357 1/16

5 23 30 60 118 119 133 340 374 394 353 376 272 221 238 290 182 145 193 275 172 357 1/15

6 23 30 60 118 119 133 340 374 394 353 376 272 221 238 290 182 145 193 275 172 357 1/14

7 23 30 60 118 119 133 145 374 394 353 376 272 221 238 290 182 340 193 275 172 357 1/13

8 23 30 60 118 119 133 145 172 394 353 376 272 221 238 290 182 340 193 275 374 357 1/12

9 23 30 60 118 119 133 145 172 182 353 376 272 221 238 290 394 340 193 275 374 357 1/11

10 23 30 60 118 119 133 145 172 182 193 376 272 221 238 290 394 340 353 275 374 357 1/10

11 23 30 60 118 119 133 145 172 182 193 221 272 376 238 290 394 340 353 275 374 357 1/9

12 23 30 60 118 119 133 145 172 182 193 221 238 376 272 290 394 340 353 275 374 357 1/8

13 23 30 60 118 119 133 145 172 182 193 221 238 272 376 290 394 340 353 275 374 357 1/7

14 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 394 340 353 376 374 357 1/6

15 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 394 340 353 376 374 357 1/5

16 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 394 353 376 374 357 1/4

17 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 394 376 374 357 1/3

18 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 376 374 394 1/2

19 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 1/1

20 23 30 60 118 119 133 145 172 182 193 221 238 272 275 290 340 353 357 374 376 394 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 352: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

88 3.34 Selection Sort descendente

3.34. Selection Sort descendente

3.34.1. Desarrollo

0 30 290 182 340 394 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 1/20

1 394 290 182 340 30 133 118 374 119 353 376 272 221 238 23 60 145 193 275 172 357 1/19

2 394 376 182 340 30 133 118 374 119 353 290 272 221 238 23 60 145 193 275 172 357 1/18

3 394 376 374 340 30 133 118 182 119 353 290 272 221 238 23 60 145 193 275 172 357 1/17

4 394 376 374 357 30 133 118 182 119 353 290 272 221 238 23 60 145 193 275 172 340 1/16

5 394 376 374 357 353 133 118 182 119 30 290 272 221 238 23 60 145 193 275 172 340 1/15

6 394 376 374 357 353 340 118 182 119 30 290 272 221 238 23 60 145 193 275 172 133 1/14

7 394 376 374 357 353 340 290 182 119 30 118 272 221 238 23 60 145 193 275 172 133 1/13

8 394 376 374 357 353 340 290 275 119 30 118 272 221 238 23 60 145 193 182 172 133 1/12

9 394 376 374 357 353 340 290 275 272 30 118 119 221 238 23 60 145 193 182 172 133 1/11

10 394 376 374 357 353 340 290 275 272 238 118 119 221 30 23 60 145 193 182 172 133 1/10

11 394 376 374 357 353 340 290 275 272 238 221 119 118 30 23 60 145 193 182 172 133 1/9

12 394 376 374 357 353 340 290 275 272 238 221 193 118 30 23 60 145 119 182 172 133 1/8

13 394 376 374 357 353 340 290 275 272 238 221 193 182 30 23 60 145 119 118 172 133 1/7

14 394 376 374 357 353 340 290 275 272 238 221 193 182 172 23 60 145 119 118 30 133 1/6

15 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 60 23 119 118 30 133 1/5

16 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 23 119 118 30 60 1/4

17 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 23 118 30 60 1/3

18 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 23 30 60 1/2

19 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 1/1

20 394 376 374 357 353 340 290 275 272 238 221 193 182 172 145 133 119 118 60 30 23 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 353: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-07-19

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

30, 290, 182, 340, 394†, 133, 118, 374†, 119†, 353, 376†, 272, 221, 238, 23, 60†, 145,

193†, 275, 172, 357†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

b. Tanto el algoritmo Heap sort como el Selection Sort son del tipo de seleccion (para cada elemento buscan elmınimo/maximo y lo congelan). Sin embargo el algoritmo Heap sort es mas veloz bajo ciertas condiciones.Deduzca que condiciones son y por que se vuelve mas veloz.

c. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

238, 221†, 275†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

d. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones ordenadastomadas del lote de datos.

e. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown), Quick Sort(hasta haber completado dos niveles de recursividad) y Radix Sort en orden ascendente (entero).

Page 354: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 26 de Julio de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-07-26

*[email protected]

Page 355: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3. c. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 82.3.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4. d. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5. e. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.6. e. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.6.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3. Resolucion explayada 16

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 493.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 493.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 503.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.7. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 523.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 523.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.8. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 533.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 533.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.9. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 563.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 563.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.10. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 593.10.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.10.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 60

Enrique P. Calot Algoritmos y Programacion II

Page 356: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.11.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 613.11.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.12. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.12.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.12.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 643.13.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 643.13.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.14. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 643.14.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.14.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 663.15.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 663.15.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.16. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.16.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.16.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 693.17.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 693.17.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.18. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.18.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.18.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.19. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 713.19.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 723.19.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.20. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 723.20.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.20.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 743.21.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 743.21.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.22. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.22.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.22.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 763.23.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 763.23.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.24. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 763.24.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.24.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 783.25.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.25.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.26. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.26.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.26.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 803.27.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 357: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.28. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.29. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.30. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.31. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.32. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.33. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Enrique P. Calot Algoritmos y Programacion II

Page 358: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

220, 38, 163, 388, 258†, 123, 140, 357†, 134†, 369, 291†, 43, 216, 191,

16, 209†, 154, 185†, 155, 306, 219†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

b. Procesar el B-tree cuyo rango valido de elementos por nodo es de 2 a 4 (1 a 4 en la raız) resultantede ingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

191, 209†, 219†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

d. Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem,se sabe que solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado enuna maquina con una memoria interna comparable a 2p2×sizeof(tElem). Dispone de las siguientessoluciones:

a) Sort externo: seleccion de reemplazo y merge polifasico

b) Sort externo: seleccion natural y merge polifasico

c) Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2 elementos ymerge polifasico

d) Sort interno: quick sort de pivoteo en el primer elemento

e) Sort interno: quick sort de pivoteo en el ultimo elemento

f ) Sort interno: bubble sort

g) Sort interno: heap sort

h) Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

e. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Heap Sort en orden ascen-dente (hacer al menos 1 swapdown).

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribir

Algoritmos y Programacion II Facultad de Ingenierıa

Page 359: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.1 a. Seleccion de reemplazo

muchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

2.1.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 b4 Sale Entra

– – – – Nada 220

220 – – – Nada 38

220 38 – – Nada 163

220 38 163 – Nada 388

220 38 163 388 38 258

220 258 163 388 163 123

220 258 123 388 220 140

140 258 123 388 258 357

140 357 123 388 357 134

140 134 123 388 388 369

140 134 123 369

Nueva particion! Se cierra la particion p1 =

{38, 163, 220, 258, 357, 388}123 291

140 134 291 369 134 43

140 43 291 369 140 216

216 43 291 369 216 191

191 43 291 369 291 16

191 43 16 369 369 209

191 43 16 209

Nueva particion! Se cierra la particion p2 =

{123, 134, 140, 216, 291, 369}16 154

191 43 154 209 43 185

191 185 154 209 154 155

191 185 155 209 155 306

191 185 306 209 185 219

191 219 306 209 191 Nada

– 219 306 209 209 Nada

– 219 306 – 219 Nada

– – 306 – 306 Nada

Finaliza la ultima particion en p3 =

{16, 43, 154, 155, 185, 191, 209, 219, 306}

2.1.2. Salida final

p1 = {38, 163, 220, 258, 357, 388};

Enrique P. Calot Algoritmos y Programacion II

Page 360: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.2 b. Ejercicio de B-trees 7

p2 = {123, 134, 140, 216, 291, 369};

p3 = {16, 43, 154, 155, 185, 191, 209, 219, 306}.

2.2. b. Ejercicio de B-trees

Procesar el B-tree cuyo rango valido de elementos por nodo es de 2 a 4 (1 a 4 en la raız) resultantede ingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

191, 209†, 219†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.2.1. Insercion

•220•

×38×163× ×258×388×

Insercion de 5 elementos: 220, 38, 163, 388, 258

•220•

×38×123×140×163× ×258×357×388×

Insercion de 3 elementos: 123, 140, 357

•134•220•

×38×123× ×140×163× ×258×357×388×

Insercion de 1 elemento: 134

•134•220•357•

×38×123× ×140×163× ×258×291× ×369×388×

Insercion de 2 elementos: 369, 291

•134•191•220•357•

×16×38×43×123× ×140×163× ×209×216× ×258×291× ×369×388×

Insercion de 5 elementos: 43, 216, 191, 16, 209

•134•191•220•357•

×16×38×43×123× ×140×154×163×185× ×209×216× ×258×291× ×369×388×

Insercion de 2 elementos: 154, 185

•191•

•134•155• •220•357•

×16×38×43×123× ×140×154× ×163×185× ×209×216×219× ×258×291×306× ×369×388×

Insercion de 3 elementos: 155, 306, 219

Algoritmos y Programacion II Facultad de Ingenierıa

Page 361: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.3 c. Merge Polifasico

2.2.2. Eliminacion

•134•155•220•357•

×16×38×43×123× ×140×154× ×163×185×216×219× ×258×291×306× ×369×388×

Eliminacion de 2 elementos: 191, 209

•134•155•220•357•

×16×38×43×123× ×140×154× ×163×185×216× ×258×291×306× ×369×388×

Eliminacion de 1 elemento: 219

2.3. c. Merge Polifasico

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

2.3.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.3.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.4. d. Pregunta teorica

Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem,se sabe que solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado enuna maquina con una memoria interna comparable a 2p2 × sizeof(tElem). Dispone de las siguientessoluciones:

a. Sort externo: seleccion de reemplazo y merge polifasico

b. Sort externo: seleccion natural y merge polifasico

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 362: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.4 d. Pregunta teorica 9

E1 E2 E3 S

D D D –D D D –D D D –D 220 38 –163 388 258 –123 140 357 –134 369 291 –43 216 – –191 16 – –209 154 – –185 155 – –306 – – –219 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 220 38 38, 220163 388 258 163, 258, 388123 140 357 123, 140, 357134 369 291 134, 291, 369

E1 E2 S E3

43 216 – D

191 16 – D

209 154 – D

185 155 – 38, 220306 – – 163, 258, 388219 – – 123, 140, 357– – – 134, 291, 369

Cuadro 3: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 363: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.5 e. Radix Sort

E1 E2 E3 S

D D D D

D D D D

D D D D

D 220 38 38, 220163 388 258 163, 258, 388123 140 357 123, 140, 357134 369 291 134, 291, 369

E1 E2 S E3

43 216 43, 216 D

191 16 16, 191 D

209 154 154, 209 D

185 155 38, 155, 185, 220 38, 220

E1 S E2 E3

306 – 43, 216 163, 258, 388219 – 16, 191 123, 140, 357– – 154, 209 134, 291, 369– – 38, 155, 185, 220 –

Cuadro 4: Fase 3

c. Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2 elementos y merge

polifasico

d. Sort interno: quick sort de pivoteo en el primer elemento

e. Sort interno: quick sort de pivoteo en el ultimo elemento

f. Sort interno: bubble sort

g. Sort interno: heap sort

h. Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

2.4.1. Respuesta

La mejor solucion es bubble sort, porque en como maximo 3 recorridas (3p comparaciones) se garantizael ordenamiento (del orden de O(p)), el sort externo queda descartado porque es menos optimo y el internose puede utilizar (la informacion entra en la memoria interna y se encuentra disponible), selection sort sedescarta por ser de orden O(p2) (incluso si el arreglo esta semi-ordenado), heap sort es de orden O(p log p)y ambas implementaciones de quick sort resultan ineficientes para un arreglo semi-ordenado (en este casoserıan casi de orden O(p2)).

2.5. e. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

Enrique P. Calot Algoritmos y Programacion II

Page 364: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 e. Radix Sort 11

E1 E2 E3 S

D D D D

D D D D

D D D D

D 220 38 38, 220163 388 258 163, 258, 388123 140 357 123, 140, 357134 369 291 134, 291, 369

E1 E2 S E3

43 216 43, 216 D

191 16 16, 191 D

209 154 154, 209 D

185 155 38, 155, 185, 220 38, 220

E1 S E2 E3

306 43, 163, 216, 258,306, 388

43, 216 163, 258, 388

219 16, 123, 140, 191,219, 357

16, 191 123, 140, 357

S E1 E2 E3

– 43, 163, 216, 258,306, 388

154, 209 134, 291, 369

– 16, 123, 140, 191,219, 357

38, 155, 185, 220 –

Cuadro 5: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 365: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.5 e. Radix Sort

E1 E2 E3 S

D D D D

D D D D

D D D D

D 220 38 38, 220163 388 258 163, 258, 388123 140 357 123, 140, 357134 369 291 134, 291, 369

E1 E2 S E3

43 216 43, 216 D

191 16 16, 191 D

209 154 154, 209 D

185 155 38, 155, 185, 220 38, 220

E1 S E2 E3

306 43, 163, 216, 258,306, 388

43, 216 163, 258, 388

219 16, 123, 140, 191,219, 357

16, 191 123, 140, 357

S E1 E2 E3

43, 134, 154, 163,209, 216, 258, 291,306, 369, 388

43, 163, 216, 258,306, 388

154, 209 134, 291, 369

E3 E1 E2 S

43, 134, 154, 163,209, 216, 258, 291,306, 369, 388

16, 123, 140, 191,219, 357

38, 155, 185, 220 –

Cuadro 6: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 366: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 e. Radix Sort 13

E1 E2 E3 S

D D D D

D D D D

D D D D

D 220 38 38, 220163 388 258 163, 258, 388123 140 357 123, 140, 357134 369 291 134, 291, 369

E1 E2 S E3

43 216 43, 216 D

191 16 16, 191 D

209 154 154, 209 D

185 155 38, 155, 185, 220 38, 220

E1 S E2 E3

306 43, 163, 216, 258,306, 388

43, 216 163, 258, 388

219 16, 123, 140, 191,219, 357

16, 191 123, 140, 357

S E1 E2 E3

43, 134, 154, 163,209, 216, 258, 291,306, 369, 388

43, 163, 216, 258,306, 388

154, 209 134, 291, 369

E3 E1 E2 S

43, 134, 154, 163,209, 216, 258, 291,306, 369, 388

16, 123, 140, 191,219, 357

38, 155, 185, 220 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E1 E2 E3

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 7: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 367: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 2.6 e. Heap Sort

2.5.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Paso 0 Paso 1 Paso 2 Paso 3220 220 306 016038 140 209 038163 291 216 043388 191 016 123258 163 219 134123 123 220 140140 043 123 154357 134 134 155134 154 038 163369 185 140 185291 155 043 191043 216 154 209216 016 155 216191 306 357 219016 357 258 220209 038 163 258154 388 369 291185 258 185 306155 369 388 357306 209 291 369219 219 191 388

2.6. e. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

2.6.1. Arbol inicial

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219

Arbol inicial y su vector asociado

Enrique P. Calot Algoritmos y Programacion II

Page 368: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Heap Sort 15

Heapfy paso 0

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291

43 216 191 16 209 154 185 155 306 219

Heapfy paso 1

220

38 163

388 258 123 140

357 185 369 291 43 216 191 16

209 154 134 155 306 219

Vector:

220 38 163 388 258 123 140 357 185 369 291

43 216 191 16 209 154 134 155 306 219

Heapfy paso 2

220

38 163

388 369 216 191

357 185 306 291 43 123 140 16

209 154 134 155 258 219

Vector:

220 38 163 388 369 216 191 357 185 306 291

43 123 140 16 209 154 134 155 258 219

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 369: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3 Resolucion explayada

220

388 216

357 369 163 191

209 185 306 291 43 123 140 16

38 154 134 155 258 219

Vector:

220 388 216 357 369 163 191 209 185 306 291

43 123 140 16 38 154 134 155 258 219

Heapfy paso 4

388

369 216

357 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 220 219

Vector:

388 369 216 357 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 220 219

219

369 216

357 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 220 388

Vector:

219 369 216 357 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 220 388

Paso 1: ultimo congelado pedido antes del corte

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumno

Enrique P. Calot Algoritmos y Programacion II

Page 370: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.1 Radix Sort descendente 17

podra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Paso 0 Paso 1 Paso 2 Paso 3220 369 291 388038 209 191 369163 219 388 357388 038 185 306258 388 369 291123 258 163 258140 357 258 220357 216 357 219134 016 155 216369 306 154 209291 185 043 191043 155 140 185216 134 038 163191 154 134 155016 163 123 154209 123 220 140154 043 219 134185 291 216 123155 191 016 043306 220 209 038219 140 306 016

3.2. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 371: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

3.2.1. Desarrollo

Paso 1 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219

Paso 2 16 38 163 219 155 123 140 185 134 154 209 43 216 191 220 291 369 357 258 306 388

Paso 3 16 38 163 219 155 123 140 185 134 154 209 43 216 191 258 291 357 369 306 388

Paso 4 38 163 219 155 123 140 185 134 154 209 43 216 191 306 357 369 388

Paso 5 134 43 155 123 140 154 163 185 209 219 216 191 369 388

Paso 6 123 43 134 155 140 154 185 209 219 216 191

Paso 7 43 123 154 140 155 191 209 216 219

Final 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 372: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291

43 216 191 16 209 154 185 155 306 219

Heapfy paso 1

220

38 163

388 258 123 140

357 185 369 291 43 216 191 16

209 154 134 155 306 219

Vector:

220 38 163 388 258 123 140 357 185 369 291

43 216 191 16 209 154 134 155 306 219

Heapfy paso 2

220

38 163

388 369 216 191

357 185 306 291 43 123 140 16

209 154 134 155 258 219

Vector:

220 38 163 388 369 216 191 357 185 306 291

43 123 140 16 209 154 134 155 258 219

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 373: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

220

388 216

357 369 163 191

209 185 306 291 43 123 140 16

38 154 134 155 258 219

Vector:

220 388 216 357 369 163 191 209 185 306 291

43 123 140 16 38 154 134 155 258 219

Heapfy paso 4

388

369 216

357 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 220 219

Vector:

388 369 216 357 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 220 219

Intercambio y congelamiento

219

369 216

357 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 220 388

Vector:

219 369 216 357 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 220 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 374: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

369

357 216

219 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 220 388

Vector:

369 357 216 219 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 220 388

Intercambio y congelamiento

220

357 216

219 306 163 191

209 185 258 291 43 123 140 16

38 154 134 155 369 388

Vector:

220 357 216 219 306 163 191 209 185 258 291

43 123 140 16 38 154 134 155 369 388

Swapdown

357

306 216

219 291 163 191

209 185 258 220 43 123 140 16

38 154 134 155 369 388

Vector:

357 306 216 219 291 163 191 209 185 258 220

43 123 140 16 38 154 134 155 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 375: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

155

306 216

219 291 163 191

209 185 258 220 43 123 140 16

38 154 134 357 369 388

Vector:

155 306 216 219 291 163 191 209 185 258 220

43 123 140 16 38 154 134 357 369 388

Swapdown

306

291 216

219 258 163 191

209 185 155 220 43 123 140 16

38 154 134 357 369 388

Vector:

306 291 216 219 258 163 191 209 185 155 220

43 123 140 16 38 154 134 357 369 388

Intercambio y congelamiento

134

291 216

219 258 163 191

209 185 155 220 43 123 140 16

38 154 306 357 369 388

Vector:

134 291 216 219 258 163 191 209 185 155 220

43 123 140 16 38 154 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 376: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

291

258 216

219 220 163 191

209 185 155 134 43 123 140 16

38 154 306 357 369 388

Vector:

291 258 216 219 220 163 191 209 185 155 134

43 123 140 16 38 154 306 357 369 388

Intercambio y congelamiento

154

258 216

219 220 163 191

209 185 155 134 43 123 140 16

38 291 306 357 369 388

Vector:

154 258 216 219 220 163 191 209 185 155 134

43 123 140 16 38 291 306 357 369 388

Swapdown

258

220 216

219 155 163 191

209 185 154 134 43 123 140 16

38 291 306 357 369 388

Vector:

258 220 216 219 155 163 191 209 185 154 134

43 123 140 16 38 291 306 357 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 377: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

38

220 216

219 155 163 191

209 185 154 134 43 123 140 16

258 291 306 357 369 388

Vector:

38 220 216 219 155 163 191 209 185 154 134

43 123 140 16 258 291 306 357 369 388

Swapdown

220

219 216

209 155 163 191

38 185 154 134 43 123 140 16

258 291 306 357 369 388

Vector:

220 219 216 209 155 163 191 38 185 154 134

43 123 140 16 258 291 306 357 369 388

Intercambio y congelamiento

16

219 216

209 155 163 191

38 185 154 134 43 123 140 220

258 291 306 357 369 388

Vector:

16 219 216 209 155 163 191 38 185 154 134

43 123 140 220 258 291 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 378: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

219

209 216

185 155 163 191

38 16 154 134 43 123 140 220

258 291 306 357 369 388

Vector:

219 209 216 185 155 163 191 38 16 154 134

43 123 140 220 258 291 306 357 369 388

Intercambio y congelamiento

140

209 216

185 155 163 191

38 16 154 134 43 123 219 220

258 291 306 357 369 388

Vector:

140 209 216 185 155 163 191 38 16 154 134

43 123 219 220 258 291 306 357 369 388

Swapdown

216

209 191

185 155 163 140

38 16 154 134 43 123 219 220

258 291 306 357 369 388

Vector:

216 209 191 185 155 163 140 38 16 154 134

43 123 219 220 258 291 306 357 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 379: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

123

209 191

185 155 163 140

38 16 154 134 43 216 219 220

258 291 306 357 369 388

Vector:

123 209 191 185 155 163 140 38 16 154 134

43 216 219 220 258 291 306 357 369 388

Swapdown

209

185 191

123 155 163 140

38 16 154 134 43 216 219 220

258 291 306 357 369 388

Vector:

209 185 191 123 155 163 140 38 16 154 134

43 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

43

185 191

123 155 163 140

38 16 154 134 209 216 219 220

258 291 306 357 369 388

Vector:

43 185 191 123 155 163 140 38 16 154 134

209 216 219 220 258 291 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 380: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

191

185 163

123 155 43 140

38 16 154 134 209 216 219 220

258 291 306 357 369 388

Vector:

191 185 163 123 155 43 140 38 16 154 134

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

134

185 163

123 155 43 140

38 16 154 191 209 216 219 220

258 291 306 357 369 388

Vector:

134 185 163 123 155 43 140 38 16 154 191

209 216 219 220 258 291 306 357 369 388

Swapdown

185

155 163

123 154 43 140

38 16 134 191 209 216 219 220

258 291 306 357 369 388

Vector:

185 155 163 123 154 43 140 38 16 134 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 381: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

134

155 163

123 154 43 140

38 16 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

134 155 163 123 154 43 140 38 16 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

163

155 140

123 154 43 134

38 16 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

163 155 140 123 154 43 134 38 16 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

16

155 140

123 154 43 134

38 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 155 140 123 154 43 134 38 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 382: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

155

154 140

123 16 43 134

38 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

155 154 140 123 16 43 134 38 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

38

154 140

123 16 43 134

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

38 154 140 123 16 43 134 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

154

123 140

38 16 43 134

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

154 123 140 38 16 43 134 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 383: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.3 Heap Sort completo

134

123 140

38 16 43 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

134 123 140 38 16 43 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

140

123 134

38 16 43 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

140 123 134 38 16 43 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

43

123 134

38 16 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

43 123 134 38 16 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 384: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 31

134

123 43

38 16 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

134 123 43 38 16 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

16

123 43

38 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 123 43 38 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

123

38 43

16 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

123 38 43 16 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 385: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.3 Heap Sort completo

16

38 43

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 38 43 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

43

38 16

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

43 38 16 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

16

38 43

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 38 43 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 386: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

38

16 43

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

38 16 43 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Intercambio y congelamiento

16

38 43

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 38 43 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

Swapdown

16

38 43

123 134 140 154

155 163 185 191 209 216 219 220

258 291 306 357 369 388

Vector:

16 38 43 123 134 140 154 155 163 185 191

209 216 219 220 258 291 306 357 369 388

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 387: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

3.4.1. Arbol inicial

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219

Arbol inicial y su vector asociadoHeapfy paso 0

220

38 163

388 258 123 140

357 134 369 291 43 216 191 16

209 154 185 155 306 219

Vector:

220 38 163 388 258 123 140 357 134 369 291

43 216 191 16 209 154 185 155 306 219

Heapfy paso 1

220

38 163

388 258 123 140

154 134 219 291 43 216 191 16

209 357 185 155 306 369

Vector:

220 38 163 388 258 123 140 154 134 219 291

43 216 191 16 209 357 185 155 306 369

Heapfy paso 2

Enrique P. Calot Algoritmos y Programacion II

Page 388: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

220

38 163

134 219 43 16

154 155 258 291 123 216 191 140

209 357 185 388 306 369

Vector:

220 38 163 134 219 43 16 154 155 258 291

123 216 191 140 209 357 185 388 306 369

Heapfy paso 3

220

38 16

134 219 43 140

154 155 258 291 123 216 191 163

209 357 185 388 306 369

Vector:

220 38 16 134 219 43 140 154 155 258 291

123 216 191 163 209 357 185 388 306 369

Heapfy paso 4

16

38 43

134 219 123 140

154 155 258 291 220 216 191 163

209 357 185 388 306 369

Vector:

16 38 43 134 219 123 140 154 155 258 291

220 216 191 163 209 357 185 388 306 369

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 389: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

369

38 43

134 219 123 140

154 155 258 291 220 216 191 163

209 357 185 388 306 16

Vector:

369 38 43 134 219 123 140 154 155 258 291

220 216 191 163 209 357 185 388 306 16

Swapdown

38

134 43

154 219 123 140

209 155 258 291 220 216 191 163

369 357 185 388 306 16

Vector:

38 134 43 154 219 123 140 209 155 258 291

220 216 191 163 369 357 185 388 306 16

Intercambio y congelamiento

306

134 43

154 219 123 140

209 155 258 291 220 216 191 163

369 357 185 388 38 16

Vector:

306 134 43 154 219 123 140 209 155 258 291

220 216 191 163 369 357 185 388 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 390: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

43

134 123

154 219 216 140

209 155 258 291 220 306 191 163

369 357 185 388 38 16

Vector:

43 134 123 154 219 216 140 209 155 258 291

220 306 191 163 369 357 185 388 38 16

Intercambio y congelamiento

388

134 123

154 219 216 140

209 155 258 291 220 306 191 163

369 357 185 43 38 16

Vector:

388 134 123 154 219 216 140 209 155 258 291

220 306 191 163 369 357 185 43 38 16

Swapdown

123

134 140

154 219 216 163

209 155 258 291 220 306 191 388

369 357 185 43 38 16

Vector:

123 134 140 154 219 216 163 209 155 258 291

220 306 191 388 369 357 185 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 391: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

185

134 140

154 219 216 163

209 155 258 291 220 306 191 388

369 357 123 43 38 16

Vector:

185 134 140 154 219 216 163 209 155 258 291

220 306 191 388 369 357 123 43 38 16

Swapdown

134

154 140

155 219 216 163

209 185 258 291 220 306 191 388

369 357 123 43 38 16

Vector:

134 154 140 155 219 216 163 209 185 258 291

220 306 191 388 369 357 123 43 38 16

Intercambio y congelamiento

357

154 140

155 219 216 163

209 185 258 291 220 306 191 388

369 134 123 43 38 16

Vector:

357 154 140 155 219 216 163 209 185 258 291

220 306 191 388 369 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 392: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

140

154 163

155 219 216 191

209 185 258 291 220 306 357 388

369 134 123 43 38 16

Vector:

140 154 163 155 219 216 191 209 185 258 291

220 306 357 388 369 134 123 43 38 16

Intercambio y congelamiento

369

154 163

155 219 216 191

209 185 258 291 220 306 357 388

140 134 123 43 38 16

Vector:

369 154 163 155 219 216 191 209 185 258 291

220 306 357 388 140 134 123 43 38 16

Swapdown

154

155 163

185 219 216 191

209 369 258 291 220 306 357 388

140 134 123 43 38 16

Vector:

154 155 163 185 219 216 191 209 369 258 291

220 306 357 388 140 134 123 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 393: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

388

155 163

185 219 216 191

209 369 258 291 220 306 357 154

140 134 123 43 38 16

Vector:

388 155 163 185 219 216 191 209 369 258 291

220 306 357 154 140 134 123 43 38 16

Swapdown

155

185 163

209 219 216 191

388 369 258 291 220 306 357 154

140 134 123 43 38 16

Vector:

155 185 163 209 219 216 191 388 369 258 291

220 306 357 154 140 134 123 43 38 16

Intercambio y congelamiento

357

185 163

209 219 216 191

388 369 258 291 220 306 155 154

140 134 123 43 38 16

Vector:

357 185 163 209 219 216 191 388 369 258 291

220 306 155 154 140 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 394: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

163

185 191

209 219 216 357

388 369 258 291 220 306 155 154

140 134 123 43 38 16

Vector:

163 185 191 209 219 216 357 388 369 258 291

220 306 155 154 140 134 123 43 38 16

Intercambio y congelamiento

306

185 191

209 219 216 357

388 369 258 291 220 163 155 154

140 134 123 43 38 16

Vector:

306 185 191 209 219 216 357 388 369 258 291

220 163 155 154 140 134 123 43 38 16

Swapdown

185

209 191

306 219 216 357

388 369 258 291 220 163 155 154

140 134 123 43 38 16

Vector:

185 209 191 306 219 216 357 388 369 258 291

220 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 395: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

220

209 191

306 219 216 357

388 369 258 291 185 163 155 154

140 134 123 43 38 16

Vector:

220 209 191 306 219 216 357 388 369 258 291

185 163 155 154 140 134 123 43 38 16

Swapdown

191

209 216

306 219 220 357

388 369 258 291 185 163 155 154

140 134 123 43 38 16

Vector:

191 209 216 306 219 220 357 388 369 258 291

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

291

209 216

306 219 220 357

388 369 258 191 185 163 155 154

140 134 123 43 38 16

Vector:

291 209 216 306 219 220 357 388 369 258 191

185 163 155 154 140 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 396: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

209

219 216

306 258 220 357

388 369 291 191 185 163 155 154

140 134 123 43 38 16

Vector:

209 219 216 306 258 220 357 388 369 291 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

291

219 216

306 258 220 357

388 369 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

291 219 216 306 258 220 357 388 369 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

216

219 220

306 258 291 357

388 369 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

216 219 220 306 258 291 357 388 369 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 397: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

369

219 220

306 258 291 357

388 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

369 219 220 306 258 291 357 388 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

219

258 220

306 369 291 357

388 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

219 258 220 306 369 291 357 388 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

388

258 220

306 369 291 357

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

388 258 220 306 369 291 357 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 398: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 45

220

258 291

306 369 388 357

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

220 258 291 306 369 388 357 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

357

258 291

306 369 388 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

357 258 291 306 369 388 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

258

306 291

357 369 388 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

258 306 291 357 369 388 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 399: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.4 Heap Sort descendente

388

306 291

357 369 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

388 306 291 357 369 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

291

306 388

357 369 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

291 306 388 357 369 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

369

306 388

357 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

369 306 388 357 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 400: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 47

306

357 388

369 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

306 357 388 369 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

369

357 388

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

369 357 388 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

357

369 388

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

357 369 388 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 401: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.4 Heap Sort descendente

388

369 357

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

388 369 357 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

369

388 357

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

369 388 357 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Intercambio y congelamiento

388

369 357

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

388 369 357 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 402: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion de reemplazo 49

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 8: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 163, 220, 258,357, 388

123, 134, 140, 216,291, 369

16, 43, 154, 155, 185,191, 209, 219, 306

Cuadro 9: Fase 1

388

369 357

306 291 258 220

219 216 209 191 185 163 155 154

140 134 123 43 38 16

Vector:

388 369 357 306 291 258 220 219 216 209 191

185 163 155 154 140 134 123 43 38 16

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {38, 163, 220, 258, 388}; p2 = {123, 140, 357}; . . . ; p6 = {154, 185}; p7 = {155, 219, 306}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 403: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.6 Merge Polifasico de las particiones marcadas

E1 E2 E3 S

38, 163, 220, 258,357, 388

123, 134, 140, 216,291, 369

16, 43, 154, 155, 185,191, 209, 219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 10: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 11: Calculo de la distribucion de columnas y dummies

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

E1 E2 E3 S

D D 38, 163, 220, 258, 388 –123, 140, 357 134 291, 369 –16, 43, 191, 209, 216 154, 185 – –155, 219, 306 – – –

Cuadro 12: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 404: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.6 Merge Polifasico de las particiones marcadas 51

E1 E2 E3 S

D D 38, 163, 220, 258, 388 38, 163, 220, 258, 388123, 140, 357 134 291, 369 123, 134, 140, 291,

357, 369

E1 E2 S E3

16, 43, 191, 209, 216 154, 185 – 38, 163, 220, 258, 388155, 219, 306 – – 123, 134, 140, 291,

357, 369

Cuadro 13: Fase 2

E1 E2 E3 S

D D 38, 163, 220, 258, 388 38, 163, 220, 258, 388123, 140, 357 134 291, 369 123, 134, 140, 291,

357, 369

E1 E2 S E3

16, 43, 191, 209, 216 154, 185 16, 38, 43, 154, 163,185, 191, 209, 216,220, 258, 388

38, 163, 220, 258, 388

E1 S E2 E3

155, 219, 306 – 16, 38, 43, 154, 163,185, 191, 209, 216,220, 258, 388

123, 134, 140, 291,357, 369

Cuadro 14: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 405: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.7 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D 38, 163, 220, 258, 388 38, 163, 220, 258, 388123, 140, 357 134 291, 369 123, 134, 140, 291,

357, 369

E1 E2 S E3

16, 43, 191, 209, 216 154, 185 16, 38, 43, 154, 163,185, 191, 209, 216,220, 258, 388

38, 163, 220, 258, 388

E1 S E2 E3

155, 219, 306 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

16, 38, 43, 154, 163,185, 191, 209, 216,220, 258, 388

123, 134, 140, 291,357, 369

S E1 E2 E3

– 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

– –

Cuadro 15: Fase final

3.7. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {38, 220}; p2 = {163, 388}; . . . ; p10 = {155, 306}; p11 = {219}.

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 16: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 406: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 53

E1 E2 E3 S

D D D –D D D –38, 220 163, 388 123, 258 –140, 357 134, 369 43, 291 –191, 216 16, 209 – –154, 185 155, 306 – –219 – – –

Cuadro 17: Fase 1

E1 E2 E3 S

D D D D

D D D D

38, 220 163, 388 123, 258 38, 123, 163, 220,258, 388

140, 357 134, 369 43, 291 43, 134, 140, 291,357, 369

E1 E2 S E3

191, 216 16, 209 – D

154, 185 155, 306 – D

219 – – 38, 123, 163, 220,258, 388

– – – 43, 134, 140, 291,357, 369

Cuadro 18: Fase 2

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {38, 163, 220}; p2 = {123, 258, 388}; . . . ; p6 = {154, 185, 209}; p7 = {155, 219, 306}.

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 407: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.8 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

38, 220 163, 388 123, 258 38, 123, 163, 220,258, 388

140, 357 134, 369 43, 291 43, 134, 140, 291,357, 369

E1 E2 S E3

191, 216 16, 209 16, 191, 209, 216 D

154, 185 155, 306 154, 155, 185, 306 D

E1 S E2 E3

219 – 16, 191, 209, 216 38, 123, 163, 220,258, 388

– – 154, 155, 185, 306 43, 134, 140, 291,357, 369

Cuadro 19: Fase 3

E1 E2 E3 S

D D D D

D D D D

38, 220 163, 388 123, 258 38, 123, 163, 220,258, 388

140, 357 134, 369 43, 291 43, 134, 140, 291,357, 369

E1 E2 S E3

191, 216 16, 209 16, 191, 209, 216 D

154, 185 155, 306 154, 155, 185, 306 D

E1 S E2 E3

219 16, 38, 123, 163, 191,209, 216, 219, 220,258, 388

16, 191, 209, 216 38, 123, 163, 220,258, 388

S E1 E2 E3

– 16, 38, 123, 163, 191,209, 216, 219, 220,258, 388

154, 155, 185, 306 43, 134, 140, 291,357, 369

Cuadro 20: Fase 4

Enrique P. Calot Algoritmos y Programacion II

Page 408: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 3 elementos 55

E1 E2 E3 S

D D D D

D D D D

38, 220 163, 388 123, 258 38, 123, 163, 220,258, 388

140, 357 134, 369 43, 291 43, 134, 140, 291,357, 369

E1 E2 S E3

191, 216 16, 209 16, 191, 209, 216 D

154, 185 155, 306 154, 155, 185, 306 D

E1 S E2 E3

219 16, 38, 123, 163, 191,209, 216, 219, 220,258, 388

16, 191, 209, 216 38, 123, 163, 220,258, 388

S E1 E2 E3

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

16, 38, 123, 163, 191,209, 216, 219, 220,258, 388

154, 155, 185, 306 43, 134, 140, 291,357, 369

E1 S E2 E3

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

– – –

Cuadro 21: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 22: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 409: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.9 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D 38, 163, 220 –123, 258, 388 134, 140, 357 43, 291, 369 –16, 191, 216 154, 185, 209 – –155, 219, 306 – – –

Cuadro 23: Fase 1

E1 E2 E3 S

D D 38, 163, 220 38, 163, 220123, 258, 388 134, 140, 357 43, 291, 369 43, 123, 134, 140,

258, 291, 357, 369,388

E1 E2 S E3

16, 191, 216 154, 185, 209 – 38, 163, 220155, 219, 306 – – 43, 123, 134, 140,

258, 291, 357, 369,388

Cuadro 24: Fase 2

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {38, 163, 220, 388}; p2 = {123, 140, 258, 357}; p3 = {43, 134, 291, 369}; p4 ={16, 191, 209, 216}; p5 = {154, 155, 185, 306}; p6 = {219}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 410: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 4 elementos 57

E1 E2 E3 S

D D 38, 163, 220 38, 163, 220123, 258, 388 134, 140, 357 43, 291, 369 43, 123, 134, 140,

258, 291, 357, 369,388

E1 E2 S E3

16, 191, 216 154, 185, 209 16, 38, 154, 163, 185,191, 209, 216, 220

38, 163, 220

E1 S E2 E3

155, 219, 306 – 16, 38, 154, 163, 185,191, 209, 216, 220

43, 123, 134, 140,258, 291, 357, 369,388

Cuadro 25: Fase 3

E1 E2 E3 S

D D 38, 163, 220 38, 163, 220123, 258, 388 134, 140, 357 43, 291, 369 43, 123, 134, 140,

258, 291, 357, 369,388

E1 E2 S E3

16, 191, 216 154, 185, 209 16, 38, 154, 163, 185,191, 209, 216, 220

38, 163, 220

E1 S E2 E3

155, 219, 306 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

16, 38, 154, 163, 185,191, 209, 216, 220

43, 123, 134, 140,258, 291, 357, 369,388

S E1 E2 E3

– 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

– –

Cuadro 26: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 27: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 411: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.9 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D –38, 163, 220, 388 123, 140, 258, 357 43, 134, 291, 369 –16, 191, 209, 216 154, 155, 185, 306 – –219 – – –

Cuadro 28: Fase 1

E1 E2 E3 S

D D D D

38, 163, 220, 388 123, 140, 258, 357 43, 134, 291, 369 38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

16, 191, 209, 216 154, 155, 185, 306 – D

219 – – 38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

Cuadro 29: Fase 2

E1 E2 E3 S

D D D D

38, 163, 220, 388 123, 140, 258, 357 43, 134, 291, 369 38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

16, 191, 209, 216 154, 155, 185, 306 16, 154, 155, 185,191, 209, 216, 306

D

E1 S E2 E3

219 – 16, 154, 155, 185,191, 209, 216, 306

38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

Cuadro 30: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 412: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D D D

38, 163, 220, 388 123, 140, 258, 357 43, 134, 291, 369 38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

16, 191, 209, 216 154, 155, 185, 306 16, 154, 155, 185,191, 209, 216, 306

D

E1 S E2 E3

219 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

16, 154, 155, 185,191, 209, 216, 306

38, 43, 123, 134, 140,163, 220, 258, 291,357, 369, 388

S E1 E2 E3

– 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

– –

Cuadro 31: Fase final

3.10. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

3.10.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 413: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

b1 b2 Sale Entra

– – Nada 220

220 – Nada 38

220 38 38 163

220 163 163 388

220 388 220 258

258 388 258 123

123 388 388 140

123 140

Nueva particion! Se cierra la particion p1 = {38, 163, 220, 258, 388}123 357

357 140 140 134

357 134 357 369

369 134 369 291

291 134

Nueva particion! Se cierra la particion p2 = {123, 140, 357, 369}134 43

291 43 291 216

216 43

Nueva particion! Se cierra la particion p3 = {134, 291}43 191

216 191 191 16

216 16 216 209

209 16

Nueva particion! Se cierra la particion p4 = {43, 191, 216}16 154

209 154 154 185

209 185 185 155

209 155 209 306

306 155 306 219

219 155

Nueva particion! Se cierra la particion p5 = {16, 154, 185, 209, 306}155 Nada

219 – 219 Nada

Finaliza la ultima particion en p6 = {155, 219}

3.10.2. Salida final

p1 = {38, 163, 220, 258, 388};

p2 = {123, 140, 357, 369};

p3 = {134, 291};

p4 = {43, 191, 216};

p5 = {16, 154, 185, 209, 306};

p6 = {155, 219}.

3.11. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 414: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Seleccion Natural con buffers de tamano 2 61

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 32: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –38, 163, 220, 258, 388 123, 140, 357, 369 134, 291 –43, 191, 216 16, 154, 185, 209, 306 – –155, 219 – – –

Cuadro 33: Fase 1

3.11.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.11.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.12. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

38, 163, 220, 258, 388 123, 140, 357, 369 134, 291 38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

43, 191, 216 16, 154, 185, 209, 306 – D

155, 219 – – 38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

Cuadro 34: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 415: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.12 Seleccion Natural con buffers de tamano 2

E1 E2 E3 S

D D D D

38, 163, 220, 258, 388 123, 140, 357, 369 134, 291 38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

43, 191, 216 16, 154, 185, 209, 306 16, 43, 154, 185, 191,209, 216, 306

D

E1 S E2 E3

155, 219 – 16, 43, 154, 185, 191,209, 216, 306

38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

Cuadro 35: Fase 3

E1 E2 E3 S

D D D D

38, 163, 220, 258, 388 123, 140, 357, 369 134, 291 38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

43, 191, 216 16, 154, 185, 209, 306 16, 43, 154, 185, 191,209, 216, 306

D

E1 S E2 E3

155, 219 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

16, 43, 154, 185, 191,209, 216, 306

38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

S E1 E2 E3

– 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

– –

Cuadro 36: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 416: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Seleccion Natural con buffers de tamano 2 63

3.12.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 220

220 – – – Nada 38

220 38 – – 38 163

220 163 – – 163 388

220 388 – – 220 258

258 388 – – 258 123

– 388 123 – Nada 140

– 388 123 140 388 Nada

123 140 – –

Nueva particion! Se cierra la particion p1 = {38, 163, 220, 258, 388}123 357

357 140 – – 140 134

357 – 134 – Nada 369

357 369 134 – 357 291

– 369 134 291 369 Nada

134 291 – –

Nueva particion! Se cierra la particion p2 = {123, 140, 357, 369}134 43

– 291 43 – Nada 216

216 291 43 – 216 191

– 291 43 191 291 Nada

43 191 – –

Nueva particion! Se cierra la particion p3 = {134, 216, 291}43 16

– 191 16 – Nada 209

209 191 16 – 191 154

209 – 16 154 209 Nada

16 154 – –

Nueva particion! Se cierra la particion p4 = {43, 191, 209}16 185

185 154 – – 154 155

185 155 – – 155 306

185 306 – – 185 219

219 306 – – 219 Nada

– 306 – – 306 Nada

Finaliza la ultima particion en p5 = {16, 154, 155, 185, 219, 306}

3.12.2. Salida final

p1 = {38, 163, 220, 258, 388};

p2 = {123, 140, 357, 369};

p3 = {134, 216, 291};

p4 = {43, 191, 209};

p5 = {16, 154, 155, 185, 219, 306}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 417: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 37: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 163, 220, 258, 388 123, 140, 357, 369 134, 216, 291 –43, 191, 209 16, 154, 155, 185,

219, 306– –

Cuadro 38: Fase 1

3.13. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.13.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.13.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

3.14. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

E1 E2 E3 S

38, 163, 220, 258, 388 123, 140, 357, 369 134, 216, 291 38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

E1 E2 S E3

43, 191, 209 16, 154, 155, 185,219, 306

– 38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

Cuadro 39: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 418: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Seleccion de reemplazo con buffer de tamano 3 65

E1 E2 E3 S

38, 163, 220, 258, 388 123, 140, 357, 369 134, 216, 291 38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

E1 E2 S E3

43, 191, 209 16, 154, 155, 185,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

S E2 E1 E3

– – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 40: Fase final

3.14.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 419: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.15 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3

b1 b2 b3 Sale Entra

– – – Nada 220

220 – – Nada 38

220 38 – Nada 163

220 38 163 38 388

220 388 163 163 258

220 388 258 220 123

123 388 258 258 140

123 388 140 388 357

123 357 140

Nueva particion! Se cierra la particion p1 = {38, 163, 220, 258, 388}123 134

134 357 140 134 369

369 357 140 140 291

369 357 291 291 43

369 357 43 357 216

369 216 43 369 191

191 216 43

Nueva particion! Se cierra la particion p2 =

{123, 134, 140, 291, 357, 369}43 16

191 216 16 191 209

209 216 16 209 154

154 216 16 216 185

154 185 16

Nueva particion! Se cierra la particion p3 = {43, 191, 209, 216}16 155

154 185 155 154 306

306 185 155 155 219

306 185 219 185 Nada

306 – 219 219 Nada

306 – – 306 Nada

Finaliza la ultima particion en p4 = {16, 154, 155, 185, 219, 306}

3.14.2. Salida final

p1 = {38, 163, 220, 258, 388};

p2 = {123, 134, 140, 291, 357, 369};

p3 = {43, 191, 209, 216};

p4 = {16, 154, 155, 185, 219, 306}.

3.15. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.15.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 420: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.16 Seleccion Natural con buffers de tamano 3 67

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 41: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 163, 220, 258, 388 123, 134, 140, 291,357, 369

43, 191, 209, 216 16, 154, 155, 185,219, 306

– –

Cuadro 42: Fase 1

3.15.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.16. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.16.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

D 38, 163, 220, 258, 388 123, 134, 140, 291,357, 369

38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

43, 191, 209, 216 16, 154, 155, 185,219, 306

– 38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

Cuadro 43: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 421: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.16 Seleccion Natural con buffers de tamano 3

E1 E2 E3 S

D 38, 163, 220, 258, 388 123, 134, 140, 291,357, 369

38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

E1 E2 S E3

43, 191, 209, 216 16, 154, 155, 185,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

38, 123, 134, 140,163, 220, 258, 291,357, 369, 388

S E2 E1 E3

– – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 44: Fase final

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 220

220 – – – – – Nada 38

220 38 – – – – Nada 163

220 38 163 – – – 38 388

220 388 163 – – – 163 258

220 388 258 – – – 220 123

– 388 258 123 – – Nada 140

– 388 258 123 140 – Nada 357

357 388 258 123 140 – 258 134

357 388 – 123 140 134 357 Nada

– 388 – 123 140 134 388 Nada

123 140 134 – – –

Nueva particion! Se cierra la particion p1 = {38, 163, 220, 258, 357, 388}123 369

369 140 134 – – – 134 291

369 140 291 – – – 140 43

369 – 291 43 – – Nada 216

369 216 291 43 – – 216 191

369 – 291 43 191 – Nada 16

369 – 291 43 191 16 291 Nada

369 – – 43 191 16 369 Nada

43 191 16 – – –

Nueva particion! Se cierra la particion p2 = {123, 134, 140, 216, 291, 369}16 209

43 191 209 – – – 43 154

154 191 209 – – – 154 185

185 191 209 – – – 185 155

– 191 209 155 – – Nada 306

306 191 209 155 – – 191 219

306 219 209 155 – – 209 Nada

306 219 – 155 – – 219 Nada

306 – – 155 – – 306 Nada

155 – – – – –

Nueva particion! Se cierra la particion p3 = {16, 43, 154, 185, 191, 209, 219, 306}155 Nada

Finaliza la ultima particion en p4 = {155}

Enrique P. Calot Algoritmos y Programacion II

Page 422: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 69

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 45: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 163, 220, 258,357, 388

123, 134, 140, 216,291, 369

16, 43, 154, 185, 191,209, 219, 306

155 – –

Cuadro 46: Fase 1

3.16.2. Salida final

p1 = {38, 163, 220, 258, 357, 388};

p2 = {123, 134, 140, 216, 291, 369};

p3 = {16, 43, 154, 185, 191, 209, 219, 306};

p4 = {155}.

3.17. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.17.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.17.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.18. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 423: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.18 Seleccion Natural con buffers de tamano 4

E1 E2 E3 S

D 38, 163, 220, 258,357, 388

123, 134, 140, 216,291, 369

38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

E1 E2 S E3

16, 43, 154, 185, 191,209, 219, 306

155 – 38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

Cuadro 47: Fase 2

E1 E2 E3 S

D 38, 163, 220, 258,357, 388

123, 134, 140, 216,291, 369

38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

E1 E2 S E3

16, 43, 154, 185, 191,209, 219, 306

155 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

38, 123, 134, 140,163, 216, 220, 258,291, 357, 369, 388

S E2 E1 E3

– – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 48: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 424: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 71

3.18.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 220

220 – – – – – – – Nada 38

220 38 – – – – – – Nada 163

220 38 163 – – – – – Nada 388

220 38 163 388 – – – – 38 258

220 258 163 388 – – – – 163 123

220 258 – 388 123 – – – Nada 140

220 258 – 388 123 140 – – Nada 357

220 258 357 388 123 140 – – 220 134

– 258 357 388 123 140 134 – Nada 369

369 258 357 388 123 140 134 – 258 291

369 291 357 388 123 140 134 – 291 43

369 – 357 388 123 140 134 43 357 Nada

369 – – 388 123 140 134 43 369 Nada

– – – 388 123 140 134 43 388 Nada

123 140 134 43 – – – –

Nueva particion! Se cierra la particion p1 = {38, 163, 220, 258, 291, 357, 369, 388}43 216

123 140 134 216 – – – – 123 191

191 140 134 216 – – – – 134 16

191 140 – 216 16 – – – Nada 209

191 140 209 216 16 – – – 140 154

191 154 209 216 16 – – – 154 185

191 185 209 216 16 – – – 185 155

191 – 209 216 16 155 – – Nada 306

191 306 209 216 16 155 – – 191 219

219 306 209 216 16 155 – – 209 Nada

219 306 – 216 16 155 – – 216 Nada

219 306 – – 16 155 – – 219 Nada

– 306 – – 16 155 – – 306 Nada

16 155 – – – – – –

Nueva particion! Se cierra la particion p2 = {43, 123, 134, 140, 154, 185, 191, 209, 216, 219, 306}16 Nada

– 155 – – – – – – 155 Nada

Finaliza la ultima particion en p3 = {16, 155}

3.18.2. Salida final

p1 = {38, 163, 220, 258, 291, 357, 369, 388};

p2 = {43, 123, 134, 140, 154, 185, 191, 209, 216, 219, 306};

p3 = {16, 155}.

3.19. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 425: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.20 Seleccion de reemplazo con buffer de tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 49: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 163, 220, 258,291, 357, 369, 388

43, 123, 134, 140,154, 185, 191, 209,216, 219, 306

16, 155 –

Cuadro 50: Fase 1

3.19.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.19.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.20. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.20.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 426: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.20 Seleccion de reemplazo con buffer de tamano 5 73

E1 E2 E3 S

38, 163, 220, 258,291, 357, 369, 388

43, 123, 134, 140,154, 185, 191, 209,216, 219, 306

16, 155 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 51: Fase final

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 220

220 – – – – Nada 38

220 38 – – – Nada 163

220 38 163 – – Nada 388

220 38 163 388 – Nada 258

220 38 163 388 258 38 123

220 123 163 388 258 123 140

220 140 163 388 258 140 357

220 357 163 388 258 163 134

220 357 134 388 258 220 369

369 357 134 388 258 258 291

369 357 134 388 291 291 43

369 357 134 388 43 357 216

369 216 134 388 43 369 191

191 216 134 388 43 388 16

191 216 134 16 43

Nueva particion! Se cierra la particion p1 =

{38, 123, 140, 163, 220, 258, 291, 357, 369, 388}16 209

191 216 134 209 43 43 154

191 216 134 209 154 134 185

191 216 185 209 154 154 155

191 216 185 209 155 155 306

191 216 185 209 306 185 219

191 216 219 209 306 191 Nada

– 216 219 209 306 209 Nada

– 216 219 – 306 216 Nada

– – 219 – 306 219 Nada

– – – – 306 306 Nada

Finaliza la ultima particion en p2 =

{16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}

3.20.2. Salida final

p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388};

p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 427: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.21 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

Cuadro 53: Fase 1

3.21. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.21.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.21.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.22. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.22.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 428: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Seleccion Natural con buffers de tamano 5 75

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 54: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 220

220 – – – – – – – – – Nada 38

220 38 – – – – – – – – Nada 163

220 38 163 – – – – – – – Nada 388

220 38 163 388 – – – – – – Nada 258

220 38 163 388 258 – – – – – 38 123

220 123 163 388 258 – – – – – 123 140

220 140 163 388 258 – – – – – 140 357

220 357 163 388 258 – – – – – 163 134

220 357 – 388 258 134 – – – – Nada 369

220 357 369 388 258 134 – – – – 220 291

291 357 369 388 258 134 – – – – 258 43

291 357 369 388 – 134 43 – – – Nada 216

291 357 369 388 – 134 43 216 – – Nada 191

291 357 369 388 – 134 43 216 191 – Nada 16

291 357 369 388 – 134 43 216 191 16 291 Nada

– 357 369 388 – 134 43 216 191 16 357 Nada

– – 369 388 – 134 43 216 191 16 369 Nada

– – – 388 – 134 43 216 191 16 388 Nada

134 43 216 191 16 – – – – –

Nueva particion! Se cierra la particion p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388}16 209

134 43 216 191 209 – – – – – 43 154

134 154 216 191 209 – – – – – 134 185

185 154 216 191 209 – – – – – 154 155

185 155 216 191 209 – – – – – 155 306

185 306 216 191 209 – – – – – 185 219

219 306 216 191 209 – – – – – 191 Nada

219 306 216 – 209 – – – – – 209 Nada

219 306 216 – – – – – – – 216 Nada

219 306 – – – – – – – – 219 Nada

– 306 – – – – – – – – 306 Nada

Finaliza la ultima particion en p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}

3.22.2. Salida final

p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388};

p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 429: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.23 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

Cuadro 56: Fase 1

3.23. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.23.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.23.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.24. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.24.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 430: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.24 Seleccion de reemplazo con buffer de tamano 6 77

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 57: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 220

220 – – – – – Nada 38

220 38 – – – – Nada 163

220 38 163 – – – Nada 388

220 38 163 388 – – Nada 258

220 38 163 388 258 – Nada 123

220 38 163 388 258 123 38 140

220 140 163 388 258 123 123 357

220 140 163 388 258 357 140 134

220 134 163 388 258 357 163 369

220 134 369 388 258 357 220 291

291 134 369 388 258 357 258 43

291 134 369 388 43 357 291 216

216 134 369 388 43 357 357 191

216 134 369 388 43 191 369 16

216 134 16 388 43 191 388 209

216 134 16 209 43 191

Nueva particion! Se cierra la particion p1 =

{38, 123, 140, 163, 220, 258, 291, 357, 369, 388}16 154

216 134 154 209 43 191 43 185

216 134 154 209 185 191 134 155

216 155 154 209 185 191 154 306

216 155 306 209 185 191 155 219

216 219 306 209 185 191 185 Nada

216 219 306 209 – 191 191 Nada

216 219 306 209 – – 209 Nada

216 219 306 – – – 216 Nada

– 219 306 – – – 219 Nada

– – 306 – – – 306 Nada

Finaliza la ultima particion en p2 =

{16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}

3.24.2. Salida final

p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388};

p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 431: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.25 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 58: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

Cuadro 59: Fase 1

3.25. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.25.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.25.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.26. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.26.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 432: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.26 Seleccion Natural con buffers de tamano 6 79

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 60: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 220

220 – – – – – – – – – – – Nada 38

220 38 – – – – – – – – – – Nada 163

220 38 163 – – – – – – – – – Nada 388

220 38 163 388 – – – – – – – – Nada 258

220 38 163 388 258 – – – – – – – Nada 123

220 38 163 388 258 123 – – – – – – 38 140

220 140 163 388 258 123 – – – – – – 123 357

220 140 163 388 258 357 – – – – – – 140 134

220 – 163 388 258 357 134 – – – – – Nada 369

220 369 163 388 258 357 134 – – – – – 163 291

220 369 291 388 258 357 134 – – – – – 220 43

– 369 291 388 258 357 134 43 – – – – Nada 216

– 369 291 388 258 357 134 43 216 – – – Nada 191

– 369 291 388 258 357 134 43 216 191 – – Nada 16

– 369 291 388 258 357 134 43 216 191 16 – Nada 209

– 369 291 388 258 357 134 43 216 191 16 209 258 Nada

– 369 291 388 – 357 134 43 216 191 16 209 291 Nada

– 369 – 388 – 357 134 43 216 191 16 209 357 Nada

– 369 – 388 – – 134 43 216 191 16 209 369 Nada

– – – 388 – – 134 43 216 191 16 209 388 Nada

134 43 216 191 16 209 – – – – – –

Nueva particion! Se cierra la particion p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388}16 154

134 43 216 191 154 209 – – – – – – 43 185

134 185 216 191 154 209 – – – – – – 134 155

155 185 216 191 154 209 – – – – – – 154 306

155 185 216 191 306 209 – – – – – – 155 219

219 185 216 191 306 209 – – – – – – 185 Nada

219 – 216 191 306 209 – – – – – – 191 Nada

219 – 216 – 306 209 – – – – – – 209 Nada

219 – 216 – 306 – – – – – – – 216 Nada

219 – – – 306 – – – – – – – 219 Nada

– – – – 306 – – – – – – – 306 Nada

Finaliza la ultima particion en p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}

3.26.2. Salida final

p1 = {38, 123, 140, 163, 220, 258, 291, 357, 369, 388};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 433: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.27 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 61: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

Cuadro 62: Fase 1

p2 = {16, 43, 134, 154, 155, 185, 191, 209, 216, 219, 306}.

3.27. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.27.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.27.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 434: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.28 Bubble Sort ascendente 81

E1 E2 E3 S

D 38, 123, 140, 163,220, 258, 291, 357,369, 388

16, 43, 134, 154, 155,185, 191, 209, 216,219, 306

16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

S E2 E3 E1

– – – 16, 38, 43, 123, 134,140, 154, 155, 163,185, 191, 209, 216,219, 220, 258, 291,306, 357, 369, 388

Cuadro 63: Fase final

3.28. Bubble Sort ascendente

3.28.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 19/20

1 38 163 220 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 388 14/19

2 38 163 220 123 140 258 134 357 291 43 216 191 16 209 154 185 155 306 219 369 388 14/18

3 38 163 123 140 220 134 258 291 43 216 191 16 209 154 185 155 306 219 357 369 388 12/17

4 38 123 140 163 134 220 258 43 216 191 16 209 154 185 155 291 219 306 357 369 388 10/16

5 38 123 140 134 163 220 43 216 191 16 209 154 185 155 258 219 291 306 357 369 388 10/15

6 38 123 134 140 163 43 216 191 16 209 154 185 155 220 219 258 291 306 357 369 388 8/14

7 38 123 134 140 43 163 191 16 209 154 185 155 216 219 220 258 291 306 357 369 388 5/13

8 38 123 134 43 140 163 16 191 154 185 155 209 216 219 220 258 291 306 357 369 388 5/12

9 38 123 43 134 140 16 163 154 185 155 191 209 216 219 220 258 291 306 357 369 388 4/11

10 38 43 123 134 16 140 154 163 155 185 191 209 216 219 220 258 291 306 357 369 388 2/10

11 38 43 123 16 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/9

12 38 43 16 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/8

13 38 16 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/7

14 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/6

15 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/5

16 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/4

17 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/3

18 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/2

19 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/1

20 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 435: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.29 Bubble Sort descendente

3.29. Bubble Sort descendente

3.29.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 18/20

1 220 163 388 258 123 140 357 134 369 291 43 216 191 38 209 154 185 155 306 219 16 15/19

2 220 388 258 163 140 357 134 369 291 123 216 191 43 209 154 185 155 306 219 38 16 13/18

3 388 258 220 163 357 140 369 291 134 216 191 123 209 154 185 155 306 219 43 38 16 11/17

4 388 258 220 357 163 369 291 140 216 191 134 209 154 185 155 306 219 123 43 38 16 11/16

5 388 258 357 220 369 291 163 216 191 140 209 154 185 155 306 219 134 123 43 38 16 11/15

6 388 357 258 369 291 220 216 191 163 209 154 185 155 306 219 140 134 123 43 38 16 7/14

7 388 357 369 291 258 220 216 191 209 163 185 155 306 219 154 140 134 123 43 38 16 5/13

8 388 369 357 291 258 220 216 209 191 185 163 306 219 155 154 140 134 123 43 38 16 2/12

9 388 369 357 291 258 220 216 209 191 185 306 219 163 155 154 140 134 123 43 38 16 2/11

10 388 369 357 291 258 220 216 209 191 306 219 185 163 155 154 140 134 123 43 38 16 2/10

11 388 369 357 291 258 220 216 209 306 219 191 185 163 155 154 140 134 123 43 38 16 2/9

12 388 369 357 291 258 220 216 306 219 209 191 185 163 155 154 140 134 123 43 38 16 2/8

13 388 369 357 291 258 220 306 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/7

14 388 369 357 291 258 306 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/6

15 388 369 357 291 306 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/5

16 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/4

17 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/3

18 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/2

19 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/1

20 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 436: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.30 Bilateral Bubble Sort ascendente 83

3.30. Bilateral Bubble Sort ascendente

3.30.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 19/20

1 38 163 220 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 388 16/20

2 16 38 163 220 258 123 140 357 134 369 291 43 216 191 154 209 155 185 219 306 388 13/18

3 16 38 163 220 123 140 258 134 357 291 43 216 191 154 209 155 185 219 306 369 388 11/18

4 16 38 43 163 220 123 140 258 134 357 291 154 216 191 155 209 185 219 306 369 388 12/16

5 16 38 43 163 123 140 220 134 258 291 154 216 191 155 209 185 219 306 357 369 388 8/16

6 16 38 43 123 163 134 140 220 154 258 291 155 216 191 185 209 219 306 357 369 388 9/14

7 16 38 43 123 134 140 163 154 220 258 155 216 191 185 209 219 291 306 357 369 388 5/14

8 16 38 43 123 134 140 154 163 155 220 258 185 216 191 209 219 291 306 357 369 388 6/12

9 16 38 43 123 134 140 154 155 163 220 185 216 191 209 219 258 291 306 357 369 388 2/12

10 16 38 43 123 134 140 154 155 163 185 220 191 216 209 219 258 291 306 357 369 388 4/10

11 16 38 43 123 134 140 154 155 163 185 191 216 209 219 220 258 291 306 357 369 388 1/10

12 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/8

13 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/8

14 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/6

15 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/6

16 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/4

17 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/4

18 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/2

19 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/2

20 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 437: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.31 Bilateral Bubble Sort descendente

3.31. Bilateral Bubble Sort descendente

3.31.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 18/20

1 220 163 388 258 123 140 357 134 369 291 43 216 191 38 209 154 185 155 306 219 16 16/20

2 388 220 163 369 258 123 140 357 134 306 291 43 216 191 38 209 154 185 155 219 16 14/18

3 388 220 369 258 163 140 357 134 306 291 123 216 191 43 209 154 185 155 219 38 16 13/18

4 388 369 220 357 258 163 140 306 134 291 219 123 216 191 43 209 154 185 155 38 16 11/16

5 388 369 357 258 220 163 306 140 291 219 134 216 191 123 209 154 185 155 43 38 16 8/16

6 388 369 357 306 258 220 163 291 140 219 216 134 209 191 123 185 154 155 43 38 16 8/14

7 388 369 357 306 258 220 291 163 219 216 140 209 191 134 185 154 155 123 43 38 16 6/14

8 388 369 357 306 291 258 220 219 163 216 209 140 191 185 134 155 154 123 43 38 16 6/12

9 388 369 357 306 291 258 220 219 216 209 163 191 185 140 155 154 134 123 43 38 16 2/12

10 388 369 357 306 291 258 220 219 216 209 191 163 185 155 140 154 134 123 43 38 16 2/10

11 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/10

12 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/8

13 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/8

14 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/6

15 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/6

16 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/4

17 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/4

18 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/2

19 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/2

20 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 438: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.32 Selection Sort ascendente 85

3.32. Selection Sort ascendente

3.32.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 1/20

1 16 38 163 388 258 123 140 357 134 369 291 43 216 191 220 209 154 185 155 306 219 1/19

2 16 38 163 388 258 123 140 357 134 369 291 43 216 191 220 209 154 185 155 306 219 1/18

3 16 38 43 388 258 123 140 357 134 369 291 163 216 191 220 209 154 185 155 306 219 1/17

4 16 38 43 123 258 388 140 357 134 369 291 163 216 191 220 209 154 185 155 306 219 1/16

5 16 38 43 123 134 388 140 357 258 369 291 163 216 191 220 209 154 185 155 306 219 1/15

6 16 38 43 123 134 140 388 357 258 369 291 163 216 191 220 209 154 185 155 306 219 1/14

7 16 38 43 123 134 140 154 357 258 369 291 163 216 191 220 209 388 185 155 306 219 1/13

8 16 38 43 123 134 140 154 155 258 369 291 163 216 191 220 209 388 185 357 306 219 1/12

9 16 38 43 123 134 140 154 155 163 369 291 258 216 191 220 209 388 185 357 306 219 1/11

10 16 38 43 123 134 140 154 155 163 185 291 258 216 191 220 209 388 369 357 306 219 1/10

11 16 38 43 123 134 140 154 155 163 185 191 258 216 291 220 209 388 369 357 306 219 1/9

12 16 38 43 123 134 140 154 155 163 185 191 209 216 291 220 258 388 369 357 306 219 1/8

13 16 38 43 123 134 140 154 155 163 185 191 209 216 291 220 258 388 369 357 306 219 1/7

14 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 388 369 357 306 291 1/6

15 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 388 369 357 306 291 1/5

16 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 388 369 357 306 291 1/4

17 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 369 357 306 388 1/3

18 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/2

19 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/1

20 16 38 43 123 134 140 154 155 163 185 191 209 216 219 220 258 291 306 357 369 388 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 439: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.33 Selection Sort descendente

3.33. Selection Sort descendente

3.33.1. Desarrollo

0 220 38 163 388 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 1/20

1 388 38 163 220 258 123 140 357 134 369 291 43 216 191 16 209 154 185 155 306 219 1/19

2 388 369 163 220 258 123 140 357 134 38 291 43 216 191 16 209 154 185 155 306 219 1/18

3 388 369 357 220 258 123 140 163 134 38 291 43 216 191 16 209 154 185 155 306 219 1/17

4 388 369 357 306 258 123 140 163 134 38 291 43 216 191 16 209 154 185 155 220 219 1/16

5 388 369 357 306 291 123 140 163 134 38 258 43 216 191 16 209 154 185 155 220 219 1/15

6 388 369 357 306 291 258 140 163 134 38 123 43 216 191 16 209 154 185 155 220 219 1/14

7 388 369 357 306 291 258 220 163 134 38 123 43 216 191 16 209 154 185 155 140 219 1/13

8 388 369 357 306 291 258 220 219 134 38 123 43 216 191 16 209 154 185 155 140 163 1/12

9 388 369 357 306 291 258 220 219 216 38 123 43 134 191 16 209 154 185 155 140 163 1/11

10 388 369 357 306 291 258 220 219 216 209 123 43 134 191 16 38 154 185 155 140 163 1/10

11 388 369 357 306 291 258 220 219 216 209 191 43 134 123 16 38 154 185 155 140 163 1/9

12 388 369 357 306 291 258 220 219 216 209 191 185 134 123 16 38 154 43 155 140 163 1/8

13 388 369 357 306 291 258 220 219 216 209 191 185 163 123 16 38 154 43 155 140 134 1/7

14 388 369 357 306 291 258 220 219 216 209 191 185 163 155 16 38 154 43 123 140 134 1/6

15 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 38 16 43 123 140 134 1/5

16 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 16 43 123 38 134 1/4

17 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 43 123 38 16 1/3

18 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/2

19 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/1

20 388 369 357 306 291 258 220 219 216 209 191 185 163 155 154 140 134 123 43 38 16 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 440: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-07-26

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

220, 38, 163, 388, 258†, 123, 140, 357†, 134†, 369, 291†, 43, 216, 191, 16, 209†, 154,

185†, 155, 306, 219†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

b. Procesar el B-tree cuyo rango valido de elementos por nodo es de 2 a 4 (1 a 4 en la raız) resultante deingresar los elementos del lote en el orden dado y luego eliminar los siguientes:

191, 209†, 219†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

d. Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem, se sabeque solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado en una maquinacon una memoria interna comparable a 2p2 × sizeof(tElem). Dispone de las siguientes soluciones:

a) Sort externo: seleccion de reemplazo y merge polifasico

b) Sort externo: seleccion natural y merge polifasico

c) Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2elementos y merge

polifasico

d) Sort interno: quick sort de pivoteo en el primer elemento

e) Sort interno: quick sort de pivoteo en el ultimo elemento

f ) Sort interno: bubble sort

g) Sort interno: heap sort

h) Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

e. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Heap Sort en orden ascendente(hacer al menos 1 swapdown).

Page 441: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 2 de Agosto de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-08-02

*[email protected]

Page 442: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 62.2.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. c. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4. d. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5. e. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.6. e. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. Resolucion explayada 13

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 453.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 463.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 463.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.7. Merge Polifasico completo con particiones formadas de 1 elemento . . . . . . . . . . . . . 473.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.8. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 493.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.9. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 543.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 543.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.10. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 563.10.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 563.10.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.11. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 56

Enrique P. Calot Algoritmos y Programacion II

Page 443: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.11.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.11.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 623.12.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 633.12.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.13. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.13.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.13.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 663.14.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 663.14.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.15. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.15.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.15.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.16. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 683.16.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 683.16.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.17. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 693.17.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.17.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.18. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 713.18.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 713.18.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.19. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.19.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.19.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.20. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 733.20.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 733.20.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.21. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 733.21.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.21.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.22. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 753.22.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 753.22.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.23. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.23.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.23.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 773.24.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 773.24.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.25. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 773.25.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.25.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 793.26.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 793.26.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.27. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.27.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Algoritmos y Programacion II Facultad de Ingenierıa

Page 444: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 81

3.28.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 813.28.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.29. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.30. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.31. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.32. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.33. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.34. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.34.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Enrique P. Calot Algoritmos y Programacion II

Page 445: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

22, 146, 309, 394, 334†, 58, 65, 358†, 63†, 349, 384†, 231, 264, 34, 4,

262†, 172, 70†, 304, 90, 354†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

b. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

c. Se dice que el orden del algoritmo de Heap Sort es de O(n log2 n), explique con sus palabras dedonde sale ese logaritmo.

d. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

262, 231†, 304†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

e. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown) y RadixSort en orden ascendente (entero).

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 446: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 b. Merge Polifasico

2.1.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 Sale Entra

– – – Nada 22

22 – – Nada 146

22 146 – Nada 309

22 146 309 22 394

394 146 309 146 334

394 334 309 309 58

394 334 58 334 65

394 65 58 394 358

358 65 58

Nueva particion! Se cierra la particion p1 = {22, 146, 309, 334, 394}58 63

358 65 63 63 349

358 65 349 65 384

358 384 349 349 231

358 384 231 358 264

264 384 231 384 34

264 34 231

Nueva particion! Se cierra la particion p2 = {58, 63, 65, 349, 358, 384}34 4

264 4 231 231 262

264 4 262 262 172

264 4 172 264 70

70 4 172

Nueva particion! Se cierra la particion p3 = {34, 231, 262, 264}4 304

70 304 172 70 90

90 304 172 90 354

354 304 172 172 Nada

354 304 – 304 Nada

354 – – 354 Nada

Finaliza la ultima particion en p4 = {4, 70, 90, 172, 304, 354}

2.1.2. Salida final

p1 = {22, 146, 309, 334, 394};

p2 = {58, 63, 65, 349, 358, 384};

p3 = {34, 231, 262, 264};

p4 = {4, 70, 90, 172, 304, 354}.

2.2. b. Merge Polifasico

Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones orde-nadas tomadas del lote de datos.

2.2.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 447: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.3 c. Pregunta teorica 7

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –D D D –D D D –D 22 146 –309 394 334 –58 65 358 –63 349 384 –231 264 – –34 4 – –262 172 – –70 304 – –90 – – –354 – – –

Cuadro 2: Fase 1

2.2.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.3. c. Pregunta teorica

Se dice que el orden del algoritmo de Heap Sort es de O(n log2 n), explique con sus palabras de dondesale ese logaritmo.

2.3.1. Respuesta

El heap sort busca el mınimo en un arbol pre-ordenado, de forma tal que realiza n busquedas binarias,una por cada elemento. Como el orden de una busqueda binaria es de O(log n), hacer n busquedas binariastiene un orden de O(n log n).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 448: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.3 c. Pregunta teorica

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 – D

34 4 – D

262 172 – D

70 304 – 22, 14690 – – 309, 334, 394354 – – 58, 65, 358– – – 63, 349, 384

Cuadro 3: Fase 2

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 231, 264 D

34 4 4, 34 D

262 172 172, 262 D

70 304 22, 70, 146, 304 22, 146

E1 S E2 E3

90 – 231, 264 309, 334, 394354 – 4, 34 58, 65, 358– – 172, 262 63, 349, 384– – 22, 70, 146, 304 –

Cuadro 4: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 449: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.4 d. Ejercicio de B-trees 9

2.4. d. Ejercicio de B-trees

Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

262, 231†, 304†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.4.1. Insercion

•309•

×22×146× ×334×394×

Insercion de 5 elementos: 22, 146, 309, 394, 334

•309•

×22×58×65×146× ×334×358×394×

Insercion de 3 elementos: 58, 65, 358

•63•309•

×22×58× ×65×146× ×334×358×394×

Insercion de 1 elemento: 63

•63•309•358•

×22×58× ×65×146× ×334×349× ×384×394×

Insercion de 2 elementos: 349, 384

•63•231•309•358•

×4×22×34×58× ×65×146× ×262×264× ×334×349× ×384×394×

Insercion de 5 elementos: 231, 264, 34, 4, 262

•63•231•309•358•

×4×22×34×58× ×65×70×146×172× ×262×264× ×334×349× ×384×394×

Insercion de 2 elementos: 172, 70

•231•

•63•90• •309•358•

×4×22×34×58× ×65×70× ×146×172× ×262×264×304× ×334×349×354× ×384×394×

Insercion de 3 elementos: 304, 90, 354

Algoritmos y Programacion II Facultad de Ingenierıa

Page 450: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.5 e. Radix Sort

2.4.2. Eliminacion

•63•90•309•358•

×4×22×34×58× ×65×70× ×146×172×264×304× ×334×349×354× ×384×394×

Eliminacion de 2 elementos: 262, 231

•63•90•309•358•

×4×22×34×58× ×65×70× ×146×172×264× ×334×349×354× ×384×394×

Eliminacion de 1 elemento: 304

2.5. e. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

2.5.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Paso 0 Paso 1 Paso 2 Paso 3022 070 004 004146 090 304 022309 231 309 034394 022 022 058334 262 231 063058 172 334 065065 063 034 070358 394 146 090063 334 349 146349 384 354 172384 264 058 231231 034 358 262264 004 262 264034 304 063 304004 354 264 309262 065 065 334172 146 070 349070 058 172 354304 358 384 358090 309 090 384354 349 394 394

2.6. e. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

Enrique P. Calot Algoritmos y Programacion II

Page 451: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 e. Heap Sort 11

2.6.1. Arbol inicial

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354

Arbol inicial y su vector asociadoHeapfy paso 0

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384

231 264 34 4 262 172 70 304 90 354

Heapfy paso 1

22

146 309

394 334 58 65

358 304 354 384 231 264 34 4

262 172 70 63 90 349

Vector:

22 146 309 394 334 58 65 358 304 354 384

231 264 34 4 262 172 70 63 90 349

Heapfy paso 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 452: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.6 e. Heap Sort

22

146 309

394 384 264 65

358 304 354 334 231 58 34 4

262 172 70 63 90 349

Vector:

22 146 309 394 384 264 65 358 304 354 334

231 58 34 4 262 172 70 63 90 349

Heapfy paso 3

22

394 309

358 384 264 65

262 304 354 334 231 58 34 4

146 172 70 63 90 349

Vector:

22 394 309 358 384 264 65 262 304 354 334

231 58 34 4 146 172 70 63 90 349

Heapfy paso 4

394

384 309

358 354 264 65

262 304 349 334 231 58 34 4

146 172 70 63 90 22

Vector:

394 384 309 358 354 264 65 262 304 349 334

231 58 34 4 146 172 70 63 90 22

Enrique P. Calot Algoritmos y Programacion II

Page 453: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3 Resolucion explayada 13

22

384 309

358 354 264 65

262 304 349 334 231 58 34 4

146 172 70 63 90 394

Vector:

22 384 309 358 354 264 65 262 304 349 334

231 58 34 4 146 172 70 63 90 394

Paso 1: ultimo congelado pedido antes del corte

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 454: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 3.2 Quick Sort

Paso 0 Paso 1 Paso 2 Paso 3022 309 394 394146 349 090 384309 058 384 358394 358 172 354334 146 070 349058 065 065 334065 394 264 309358 334 063 304063 384 262 264349 264 058 262384 034 358 231231 004 354 172264 304 349 146034 354 146 090004 063 334 070262 022 034 065172 262 231 063070 172 022 058304 231 309 034090 070 004 022354 090 304 004

3.2. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

3.2.1. Desarrollo

Paso 1 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354

Paso 2 4 22 309 394 334 58 65 358 63 349 384 231 264 34 146 262 172 70 304 90 354

Paso 3 146 90 304 58 65 70 63 172 262 231 264 34 309 384 349 358 334 394 354

Paso 4 63 90 34 58 65 70 146 172 262 231 264 304 354 349 358 334 384 394

Paso 5 34 58 63 90 65 70 172 262 231 264 304 334 349 354 358

Paso 6 34 58 70 65 90 231 262 264 304 334 349

Final 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

Enrique P. Calot Algoritmos y Programacion II

Page 455: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 15

3.3.1. Arbol inicial

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354

Arbol inicial y su vector asociadoHeapfy paso 0

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384

231 264 34 4 262 172 70 304 90 354

Heapfy paso 1

22

146 309

394 334 58 65

358 304 354 384 231 264 34 4

262 172 70 63 90 349

Vector:

22 146 309 394 334 58 65 358 304 354 384

231 264 34 4 262 172 70 63 90 349

Heapfy paso 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 456: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

22

146 309

394 384 264 65

358 304 354 334 231 58 34 4

262 172 70 63 90 349

Vector:

22 146 309 394 384 264 65 358 304 354 334

231 58 34 4 262 172 70 63 90 349

Heapfy paso 3

22

394 309

358 384 264 65

262 304 354 334 231 58 34 4

146 172 70 63 90 349

Vector:

22 394 309 358 384 264 65 262 304 354 334

231 58 34 4 146 172 70 63 90 349

Heapfy paso 4

394

384 309

358 354 264 65

262 304 349 334 231 58 34 4

146 172 70 63 90 22

Vector:

394 384 309 358 354 264 65 262 304 349 334

231 58 34 4 146 172 70 63 90 22

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 457: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

22

384 309

358 354 264 65

262 304 349 334 231 58 34 4

146 172 70 63 90 394

Vector:

22 384 309 358 354 264 65 262 304 349 334

231 58 34 4 146 172 70 63 90 394

Swapdown

384

358 309

304 354 264 65

262 70 349 334 231 58 34 4

146 172 22 63 90 394

Vector:

384 358 309 304 354 264 65 262 70 349 334

231 58 34 4 146 172 22 63 90 394

Intercambio y congelamiento

90

358 309

304 354 264 65

262 70 349 334 231 58 34 4

146 172 22 63 384 394

Vector:

90 358 309 304 354 264 65 262 70 349 334

231 58 34 4 146 172 22 63 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 458: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

358

354 309

304 349 264 65

262 70 90 334 231 58 34 4

146 172 22 63 384 394

Vector:

358 354 309 304 349 264 65 262 70 90 334

231 58 34 4 146 172 22 63 384 394

Intercambio y congelamiento

63

354 309

304 349 264 65

262 70 90 334 231 58 34 4

146 172 22 358 384 394

Vector:

63 354 309 304 349 264 65 262 70 90 334

231 58 34 4 146 172 22 358 384 394

Swapdown

354

349 309

304 334 264 65

262 70 90 63 231 58 34 4

146 172 22 358 384 394

Vector:

354 349 309 304 334 264 65 262 70 90 63

231 58 34 4 146 172 22 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 459: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

22

349 309

304 334 264 65

262 70 90 63 231 58 34 4

146 172 354 358 384 394

Vector:

22 349 309 304 334 264 65 262 70 90 63

231 58 34 4 146 172 354 358 384 394

Swapdown

349

334 309

304 90 264 65

262 70 22 63 231 58 34 4

146 172 354 358 384 394

Vector:

349 334 309 304 90 264 65 262 70 22 63

231 58 34 4 146 172 354 358 384 394

Intercambio y congelamiento

172

334 309

304 90 264 65

262 70 22 63 231 58 34 4

146 349 354 358 384 394

Vector:

172 334 309 304 90 264 65 262 70 22 63

231 58 34 4 146 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 460: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

334

304 309

262 90 264 65

172 70 22 63 231 58 34 4

146 349 354 358 384 394

Vector:

334 304 309 262 90 264 65 172 70 22 63

231 58 34 4 146 349 354 358 384 394

Intercambio y congelamiento

146

304 309

262 90 264 65

172 70 22 63 231 58 34 4

334 349 354 358 384 394

Vector:

146 304 309 262 90 264 65 172 70 22 63

231 58 34 4 334 349 354 358 384 394

Swapdown

309

304 264

262 90 231 65

172 70 22 63 146 58 34 4

334 349 354 358 384 394

Vector:

309 304 264 262 90 231 65 172 70 22 63

146 58 34 4 334 349 354 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 461: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

4

304 264

262 90 231 65

172 70 22 63 146 58 34 309

334 349 354 358 384 394

Vector:

4 304 264 262 90 231 65 172 70 22 63

146 58 34 309 334 349 354 358 384 394

Swapdown

304

262 264

172 90 231 65

4 70 22 63 146 58 34 309

334 349 354 358 384 394

Vector:

304 262 264 172 90 231 65 4 70 22 63

146 58 34 309 334 349 354 358 384 394

Intercambio y congelamiento

34

262 264

172 90 231 65

4 70 22 63 146 58 304 309

334 349 354 358 384 394

Vector:

34 262 264 172 90 231 65 4 70 22 63

146 58 304 309 334 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 462: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

264

262 231

172 90 146 65

4 70 22 63 34 58 304 309

334 349 354 358 384 394

Vector:

264 262 231 172 90 146 65 4 70 22 63

34 58 304 309 334 349 354 358 384 394

Intercambio y congelamiento

58

262 231

172 90 146 65

4 70 22 63 34 264 304 309

334 349 354 358 384 394

Vector:

58 262 231 172 90 146 65 4 70 22 63

34 264 304 309 334 349 354 358 384 394

Swapdown

262

172 231

70 90 146 65

4 58 22 63 34 264 304 309

334 349 354 358 384 394

Vector:

262 172 231 70 90 146 65 4 58 22 63

34 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 463: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

34

172 231

70 90 146 65

4 58 22 63 262 264 304 309

334 349 354 358 384 394

Vector:

34 172 231 70 90 146 65 4 58 22 63

262 264 304 309 334 349 354 358 384 394

Swapdown

231

172 146

70 90 34 65

4 58 22 63 262 264 304 309

334 349 354 358 384 394

Vector:

231 172 146 70 90 34 65 4 58 22 63

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

63

172 146

70 90 34 65

4 58 22 231 262 264 304 309

334 349 354 358 384 394

Vector:

63 172 146 70 90 34 65 4 58 22 231

262 264 304 309 334 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 464: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

172

90 146

70 63 34 65

4 58 22 231 262 264 304 309

334 349 354 358 384 394

Vector:

172 90 146 70 63 34 65 4 58 22 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

22

90 146

70 63 34 65

4 58 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

22 90 146 70 63 34 65 4 58 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

146

90 65

70 63 34 22

4 58 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

146 90 65 70 63 34 22 4 58 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 465: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

58

90 65

70 63 34 22

4 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

58 90 65 70 63 34 22 4 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

90

70 65

58 63 34 22

4 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

90 70 65 58 63 34 22 4 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

4

70 65

58 63 34 22

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 70 65 58 63 34 22 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 466: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

70

63 65

58 4 34 22

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

70 63 65 58 4 34 22 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

22

63 65

58 4 34 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

22 63 65 58 4 34 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

65

63 34

58 4 22 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

65 63 34 58 4 22 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 467: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

22

63 34

58 4 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

22 63 34 58 4 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

63

58 34

22 4 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

63 58 34 22 4 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

4

58 34

22 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 58 34 22 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 468: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

58

22 34

4 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

58 22 34 4 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

4

22 34

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 22 34 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

34

22 4

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

34 22 4 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 469: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

4

22 34

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 22 34 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

22

4 34

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

22 4 34 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Intercambio y congelamiento

4

22 34

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 22 34 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 470: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.4 Heap Sort descendente

4

22 34

58 63 65 70

90 146 172 231 262 264 304 309

334 349 354 358 384 394

Vector:

4 22 34 58 63 65 70 90 146 172 231

262 264 304 309 334 349 354 358 384 394

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

3.4.1. Arbol inicial

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 471: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

22

146 309

394 334 58 65

358 63 349 384 231 264 34 4

262 172 70 304 90 354

Vector:

22 146 309 394 334 58 65 358 63 349 384

231 264 34 4 262 172 70 304 90 354

Heapfy paso 1

22

146 309

394 334 58 65

172 63 90 384 231 264 34 4

262 358 70 304 349 354

Vector:

22 146 309 394 334 58 65 172 63 90 384

231 264 34 4 262 358 70 304 349 354

Heapfy paso 2

22

146 309

63 90 58 4

172 70 334 384 231 264 34 65

262 358 394 304 349 354

Vector:

22 146 309 63 90 58 4 172 70 334 384

231 264 34 65 262 358 394 304 349 354

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 472: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

22

63 4

70 90 58 34

172 146 334 384 231 264 309 65

262 358 394 304 349 354

Vector:

22 63 4 70 90 58 34 172 146 334 384

231 264 309 65 262 358 394 304 349 354

Heapfy paso 4

4

63 22

70 90 58 34

172 146 334 384 231 264 309 65

262 358 394 304 349 354

Vector:

4 63 22 70 90 58 34 172 146 334 384

231 264 309 65 262 358 394 304 349 354

Intercambio y congelamiento

354

63 22

70 90 58 34

172 146 334 384 231 264 309 65

262 358 394 304 349 4

Vector:

354 63 22 70 90 58 34 172 146 334 384

231 264 309 65 262 358 394 304 349 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 473: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

22

63 34

70 90 58 65

172 146 334 384 231 264 309 354

262 358 394 304 349 4

Vector:

22 63 34 70 90 58 65 172 146 334 384

231 264 309 354 262 358 394 304 349 4

Intercambio y congelamiento

349

63 34

70 90 58 65

172 146 334 384 231 264 309 354

262 358 394 304 22 4

Vector:

349 63 34 70 90 58 65 172 146 334 384

231 264 309 354 262 358 394 304 22 4

Swapdown

34

63 58

70 90 231 65

172 146 334 384 349 264 309 354

262 358 394 304 22 4

Vector:

34 63 58 70 90 231 65 172 146 334 384

349 264 309 354 262 358 394 304 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 474: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

304

63 58

70 90 231 65

172 146 334 384 349 264 309 354

262 358 394 34 22 4

Vector:

304 63 58 70 90 231 65 172 146 334 384

349 264 309 354 262 358 394 34 22 4

Swapdown

58

63 65

70 90 231 304

172 146 334 384 349 264 309 354

262 358 394 34 22 4

Vector:

58 63 65 70 90 231 304 172 146 334 384

349 264 309 354 262 358 394 34 22 4

Intercambio y congelamiento

394

63 65

70 90 231 304

172 146 334 384 349 264 309 354

262 358 58 34 22 4

Vector:

394 63 65 70 90 231 304 172 146 334 384

349 264 309 354 262 358 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 475: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

63

70 65

146 90 231 304

172 394 334 384 349 264 309 354

262 358 58 34 22 4

Vector:

63 70 65 146 90 231 304 172 394 334 384

349 264 309 354 262 358 58 34 22 4

Intercambio y congelamiento

358

70 65

146 90 231 304

172 394 334 384 349 264 309 354

262 63 58 34 22 4

Vector:

358 70 65 146 90 231 304 172 394 334 384

349 264 309 354 262 63 58 34 22 4

Swapdown

65

70 231

146 90 264 304

172 394 334 384 349 358 309 354

262 63 58 34 22 4

Vector:

65 70 231 146 90 264 304 172 394 334 384

349 358 309 354 262 63 58 34 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 476: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

262

70 231

146 90 264 304

172 394 334 384 349 358 309 354

65 63 58 34 22 4

Vector:

262 70 231 146 90 264 304 172 394 334 384

349 358 309 354 65 63 58 34 22 4

Swapdown

70

90 231

146 262 264 304

172 394 334 384 349 358 309 354

65 63 58 34 22 4

Vector:

70 90 231 146 262 264 304 172 394 334 384

349 358 309 354 65 63 58 34 22 4

Intercambio y congelamiento

354

90 231

146 262 264 304

172 394 334 384 349 358 309 70

65 63 58 34 22 4

Vector:

354 90 231 146 262 264 304 172 394 334 384

349 358 309 70 65 63 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 477: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

90

146 231

172 262 264 304

354 394 334 384 349 358 309 70

65 63 58 34 22 4

Vector:

90 146 231 172 262 264 304 354 394 334 384

349 358 309 70 65 63 58 34 22 4

Intercambio y congelamiento

309

146 231

172 262 264 304

354 394 334 384 349 358 90 70

65 63 58 34 22 4

Vector:

309 146 231 172 262 264 304 354 394 334 384

349 358 90 70 65 63 58 34 22 4

Swapdown

146

172 231

309 262 264 304

354 394 334 384 349 358 90 70

65 63 58 34 22 4

Vector:

146 172 231 309 262 264 304 354 394 334 384

349 358 90 70 65 63 58 34 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 478: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

358

172 231

309 262 264 304

354 394 334 384 349 146 90 70

65 63 58 34 22 4

Vector:

358 172 231 309 262 264 304 354 394 334 384

349 146 90 70 65 63 58 34 22 4

Swapdown

172

262 231

309 334 264 304

354 394 358 384 349 146 90 70

65 63 58 34 22 4

Vector:

172 262 231 309 334 264 304 354 394 358 384

349 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

349

262 231

309 334 264 304

354 394 358 384 172 146 90 70

65 63 58 34 22 4

Vector:

349 262 231 309 334 264 304 354 394 358 384

172 146 90 70 65 63 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 479: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

231

262 264

309 334 349 304

354 394 358 384 172 146 90 70

65 63 58 34 22 4

Vector:

231 262 264 309 334 349 304 354 394 358 384

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

384

262 264

309 334 349 304

354 394 358 231 172 146 90 70

65 63 58 34 22 4

Vector:

384 262 264 309 334 349 304 354 394 358 231

172 146 90 70 65 63 58 34 22 4

Swapdown

262

309 264

354 334 349 304

384 394 358 231 172 146 90 70

65 63 58 34 22 4

Vector:

262 309 264 354 334 349 304 384 394 358 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 480: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

358

309 264

354 334 349 304

384 394 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

358 309 264 354 334 349 304 384 394 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

264

309 304

354 334 349 358

384 394 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

264 309 304 354 334 349 358 384 394 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

394

309 304

354 334 349 358

384 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

394 309 304 354 334 349 358 384 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 481: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

304

309 349

354 334 394 358

384 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

304 309 349 354 334 394 358 384 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

384

309 349

354 334 394 358

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

384 309 349 354 334 394 358 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

309

334 349

354 384 394 358

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

309 334 349 354 384 394 358 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 482: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

358

334 349

354 384 394 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

358 334 349 354 384 394 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

334

354 349

358 384 394 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

334 354 349 358 384 394 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

394

354 349

358 384 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

394 354 349 358 384 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 483: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

349

354 394

358 384 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

349 354 394 358 384 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

384

354 394

358 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

384 354 394 358 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

354

358 394

384 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

354 358 394 384 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 484: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

384

358 394

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

384 358 394 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

358

384 394

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

358 384 394 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

394

384 358

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

394 384 358 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 485: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion de reemplazo 45

384

394 358

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

384 394 358 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Intercambio y congelamiento

394

384 358

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

394 384 358 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

Swapdown

394

384 358

354 349 334 309

304 264 262 231 172 146 90 70

65 63 58 34 22 4

Vector:

394 384 358 354 349 334 309 304 264 262 231

172 146 90 70 65 63 58 34 22 4

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 486: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.6 Merge Polifasico de las particiones marcadas

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 5: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 146, 309, 334, 394 58, 63, 65, 349, 358,384

34, 231, 262, 264 4, 70, 90, 172, 304,354

– –

Cuadro 6: Fase 1

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {22, 146, 309, 334, 394}; p2 = {58, 65, 358}; . . . ; p6 = {70, 172}; p7 = {90, 304, 354}.

E1 E2 E3 S

D 22, 146, 309, 334, 394 58, 63, 65, 349, 358,384

22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

E1 E2 S E3

34, 231, 262, 264 4, 70, 90, 172, 304,354

– 22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

Cuadro 7: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 487: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico completo con particiones formadas de 1 elemento 47

E1 E2 E3 S

D 22, 146, 309, 334, 394 58, 63, 65, 349, 358,384

22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

E1 E2 S E3

34, 231, 262, 264 4, 70, 90, 172, 304,354

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

S E2 E1 E3

– – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 8: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 9: Calculo de la distribucion de columnas y dummies

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.7. Merge Polifasico completo con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 488: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.7 Merge Polifasico completo con particiones formadas de 1 elemento

E1 E2 E3 S

D D 22, 146, 309, 334, 394 –58, 65, 358 63 349, 384 –4, 34, 231, 262, 264 70, 172 – –90, 304, 354 – – –

Cuadro 10: Fase 1

E1 E2 E3 S

D D 22, 146, 309, 334, 394 22, 146, 309, 334, 39458, 65, 358 63 349, 384 58, 63, 65, 349, 358,

384

E1 E2 S E3

4, 34, 231, 262, 264 70, 172 – 22, 146, 309, 334, 39490, 304, 354 – – 58, 63, 65, 349, 358,

384

Cuadro 11: Fase 2

E1 E2 E3 S

D D 22, 146, 309, 334, 394 22, 146, 309, 334, 39458, 65, 358 63 349, 384 58, 63, 65, 349, 358,

384

E1 E2 S E3

4, 34, 231, 262, 264 70, 172 4, 22, 34, 70, 146,172, 231, 262, 264,309, 334, 394

22, 146, 309, 334, 394

E1 S E2 E3

90, 304, 354 – 4, 22, 34, 70, 146,172, 231, 262, 264,309, 334, 394

58, 63, 65, 349, 358,384

Cuadro 12: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 489: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 49

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 13: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –D D D –D D D –D 22 146 –309 394 334 –58 65 358 –63 349 384 –231 264 – –34 4 – –262 172 – –70 304 – –90 – – –354 – – –

Cuadro 14: Fase 1

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {22, 146}; p2 = {309, 394}; . . . ; p10 = {90, 304}; p11 = {354}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 490: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 – D

34 4 – D

262 172 – D

70 304 – 22, 14690 – – 309, 334, 394354 – – 58, 65, 358– – – 63, 349, 384

Cuadro 15: Fase 2

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 231, 264 D

34 4 4, 34 D

262 172 172, 262 D

70 304 22, 70, 146, 304 22, 146

E1 S E2 E3

90 – 231, 264 309, 334, 394354 – 4, 34 58, 65, 358– – 172, 262 63, 349, 384– – 22, 70, 146, 304 –

Cuadro 16: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 491: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 51

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 231, 264 D

34 4 4, 34 D

262 172 172, 262 D

70 304 22, 70, 146, 304 22, 146

E1 S E2 E3

90 90, 231, 264, 309,334, 394

231, 264 309, 334, 394

354 4, 34, 58, 65, 354, 358 4, 34 58, 65, 358

S E1 E2 E3

– 90, 231, 264, 309,334, 394

172, 262 63, 349, 384

– 4, 34, 58, 65, 354, 358 22, 70, 146, 304 –

Cuadro 17: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 492: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 231, 264 D

34 4 4, 34 D

262 172 172, 262 D

70 304 22, 70, 146, 304 22, 146

E1 S E2 E3

90 90, 231, 264, 309,334, 394

231, 264 309, 334, 394

354 4, 34, 58, 65, 354, 358 4, 34 58, 65, 358

S E1 E2 E3

63, 90, 172, 231, 262,264, 309, 334, 349,384, 394

90, 231, 264, 309,334, 394

172, 262 63, 349, 384

E3 E1 E2 S

63, 90, 172, 231, 262,264, 309, 334, 349,384, 394

4, 34, 58, 65, 354, 358 22, 70, 146, 304 –

Cuadro 18: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 493: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 53

E1 E2 E3 S

D D D D

D D D D

D D D D

D 22 146 22, 146309 394 334 309, 334, 39458 65 358 58, 65, 35863 349 384 63, 349, 384

E1 E2 S E3

231 264 231, 264 D

34 4 4, 34 D

262 172 172, 262 D

70 304 22, 70, 146, 304 22, 146

E1 S E2 E3

90 90, 231, 264, 309,334, 394

231, 264 309, 334, 394

354 4, 34, 58, 65, 354, 358 4, 34 58, 65, 358

S E1 E2 E3

63, 90, 172, 231, 262,264, 309, 334, 349,384, 394

90, 231, 264, 309,334, 394

172, 262 63, 349, 384

E3 E1 E2 S

63, 90, 172, 231, 262,264, 309, 334, 349,384, 394

4, 34, 58, 65, 354, 358 22, 70, 146, 304 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E1 E2 E3

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 19: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 494: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 3 elementos

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 20: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –D D D –22, 146 309, 394 58, 334 –65, 358 63, 349 231, 384 –34, 264 4, 262 – –70, 172 90, 304 – –354 – – –

Cuadro 21: Fase 1

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {22, 146, 309}; p2 = {58, 334, 394}; . . . ; p6 = {70, 172, 262}; p7 = {90, 304, 354}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de las

Enrique P. Calot Algoritmos y Programacion II

Page 495: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 55

E1 E2 E3 S

D D D D

D D D D

22, 146 309, 394 58, 334 22, 58, 146, 309, 334,394

65, 358 63, 349 231, 384 63, 65, 231, 349, 358,384

E1 E2 S E3

34, 264 4, 262 – D

70, 172 90, 304 – D

354 – – 22, 58, 146, 309, 334,394

– – – 63, 65, 231, 349, 358,384

Cuadro 22: Fase 2

E1 E2 E3 S

D D D D

D D D D

22, 146 309, 394 58, 334 22, 58, 146, 309, 334,394

65, 358 63, 349 231, 384 63, 65, 231, 349, 358,384

E1 E2 S E3

34, 264 4, 262 4, 34, 262, 264 D

70, 172 90, 304 70, 90, 172, 304 D

E1 S E2 E3

354 – 4, 34, 262, 264 22, 58, 146, 309, 334,394

– – 70, 90, 172, 304 63, 65, 231, 349, 358,384

Cuadro 23: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 496: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.10 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

D D D D

22, 146 309, 394 58, 334 22, 58, 146, 309, 334,394

65, 358 63, 349 231, 384 63, 65, 231, 349, 358,384

E1 E2 S E3

34, 264 4, 262 4, 34, 262, 264 D

70, 172 90, 304 70, 90, 172, 304 D

E1 S E2 E3

354 4, 22, 34, 58, 146,262, 264, 309, 334,354, 394

4, 34, 262, 264 22, 58, 146, 309, 334,394

S E1 E2 E3

– 4, 22, 34, 58, 146,262, 264, 309, 334,354, 394

70, 90, 172, 304 63, 65, 231, 349, 358,384

Cuadro 24: Fase 4

cuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.10. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {22, 146, 309, 394}; p2 = {58, 65, 334, 358}; p3 = {63, 231, 349, 384}; p4 ={4, 34, 262, 264}; p5 = {70, 90, 172, 304}; p6 = {354}.

3.10.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.10.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.11. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

Enrique P. Calot Algoritmos y Programacion II

Page 497: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 57

E1 E2 E3 S

D D D D

D D D D

22, 146 309, 394 58, 334 22, 58, 146, 309, 334,394

65, 358 63, 349 231, 384 63, 65, 231, 349, 358,384

E1 E2 S E3

34, 264 4, 262 4, 34, 262, 264 D

70, 172 90, 304 70, 90, 172, 304 D

E1 S E2 E3

354 4, 22, 34, 58, 146,262, 264, 309, 334,354, 394

4, 34, 262, 264 22, 58, 146, 309, 334,394

S E1 E2 E3

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

4, 22, 34, 58, 146,262, 264, 309, 334,354, 394

70, 90, 172, 304 63, 65, 231, 349, 358,384

E1 S E2 E3

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

– – –

Cuadro 25: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 26: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 22, 146, 309 –58, 334, 394 63, 65, 358 231, 349, 384 –4, 34, 264 70, 172, 262 – –90, 304, 354 – – –

Cuadro 27: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 498: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 22, 146, 309 22, 146, 30958, 334, 394 63, 65, 358 231, 349, 384 58, 63, 65, 231, 334,

349, 358, 384, 394

E1 E2 S E3

4, 34, 264 70, 172, 262 – 22, 146, 30990, 304, 354 – – 58, 63, 65, 231, 334,

349, 358, 384, 394

Cuadro 28: Fase 2

E1 E2 E3 S

D D 22, 146, 309 22, 146, 30958, 334, 394 63, 65, 358 231, 349, 384 58, 63, 65, 231, 334,

349, 358, 384, 394

E1 E2 S E3

4, 34, 264 70, 172, 262 4, 22, 34, 70, 146,172, 262, 264, 309

22, 146, 309

E1 S E2 E3

90, 304, 354 – 4, 22, 34, 70, 146,172, 262, 264, 309

58, 63, 65, 231, 334,349, 358, 384, 394

Cuadro 29: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 499: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D 22, 146, 309 22, 146, 30958, 334, 394 63, 65, 358 231, 349, 384 58, 63, 65, 231, 334,

349, 358, 384, 394

E1 E2 S E3

4, 34, 264 70, 172, 262 4, 22, 34, 70, 146,172, 262, 264, 309

22, 146, 309

E1 S E2 E3

90, 304, 354 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

4, 22, 34, 70, 146,172, 262, 264, 309

58, 63, 65, 231, 334,349, 358, 384, 394

S E1 E2 E3

– 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

– –

Cuadro 30: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 31: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –22, 146, 309, 394 58, 65, 334, 358 63, 231, 349, 384 –4, 34, 262, 264 70, 90, 172, 304 – –354 – – –

Cuadro 32: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 500: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

22, 146, 309, 394 58, 65, 334, 358 63, 231, 349, 384 22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

E1 E2 S E3

4, 34, 262, 264 70, 90, 172, 304 – D

354 – – 22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

Cuadro 33: Fase 2

E1 E2 E3 S

D D D D

22, 146, 309, 394 58, 65, 334, 358 63, 231, 349, 384 22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

E1 E2 S E3

4, 34, 262, 264 70, 90, 172, 304 4, 34, 70, 90, 172,262, 264, 304

D

E1 S E2 E3

354 – 4, 34, 70, 90, 172,262, 264, 304

22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

Cuadro 34: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 501: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 61

E1 E2 E3 S

D D D D

22, 146, 309, 394 58, 65, 334, 358 63, 231, 349, 384 22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

E1 E2 S E3

4, 34, 262, 264 70, 90, 172, 304 4, 34, 70, 90, 172,262, 264, 304

D

E1 S E2 E3

354 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

4, 34, 70, 90, 172,262, 264, 304

22, 58, 63, 65, 146,231, 309, 334, 349,358, 384, 394

S E1 E2 E3

– 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

– –

Cuadro 35: Fase final

3.11.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 502: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.12 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

b1 b2 Sale Entra

– – Nada 22

22 – Nada 146

22 146 22 309

309 146 146 394

309 394 309 334

334 394 334 58

58 394 394 65

58 65

Nueva particion! Se cierra la particion p1 = {22, 146, 309, 334, 394}58 358

358 65 65 63

358 63 358 349

349 63

Nueva particion! Se cierra la particion p2 = {58, 65, 358}63 384

349 384 349 231

231 384 384 264

231 264

Nueva particion! Se cierra la particion p3 = {63, 349, 384}231 34

34 264 264 4

34 4

Nueva particion! Se cierra la particion p4 = {231, 264}4 262

34 262 34 172

172 262 172 70

70 262 262 304

70 304 304 90

70 90

Nueva particion! Se cierra la particion p5 = {4, 34, 172, 262, 304}70 354

354 90 90 Nada

354 – 354 Nada

Finaliza la ultima particion en p6 = {70, 90, 354}

3.11.2. Salida final

p1 = {22, 146, 309, 334, 394};

p2 = {58, 65, 358};

p3 = {63, 349, 384};

p4 = {231, 264};

p5 = {4, 34, 172, 262, 304};

p6 = {70, 90, 354}.

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 503: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 63

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 36: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –22, 146, 309, 334, 394 58, 65, 358 63, 349, 384 –231, 264 4, 34, 172, 262, 304 – –70, 90, 354 – – –

Cuadro 37: Fase 1

3.12.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.12.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.13. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

22, 146, 309, 334, 394 58, 65, 358 63, 349, 384 22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

E1 E2 S E3

231, 264 4, 34, 172, 262, 304 – D

70, 90, 354 – – 22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

Cuadro 38: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 504: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Seleccion Natural con buffers de tamano 2

E1 E2 E3 S

D D D D

22, 146, 309, 334, 394 58, 65, 358 63, 349, 384 22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

E1 E2 S E3

231, 264 4, 34, 172, 262, 304 4, 34, 172, 231, 262,264, 304

D

E1 S E2 E3

70, 90, 354 – 4, 34, 172, 231, 262,264, 304

22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

Cuadro 39: Fase 3

E1 E2 E3 S

D D D D

22, 146, 309, 334, 394 58, 65, 358 63, 349, 384 22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

E1 E2 S E3

231, 264 4, 34, 172, 262, 304 4, 34, 172, 231, 262,264, 304

D

E1 S E2 E3

70, 90, 354 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

4, 34, 172, 231, 262,264, 304

22, 58, 63, 65, 146,309, 334, 349, 358,384, 394

S E1 E2 E3

– 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

– –

Cuadro 40: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 505: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 65

3.13.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 22

22 – – – Nada 146

22 146 – – 22 309

309 146 – – 146 394

309 394 – – 309 334

334 394 – – 334 58

– 394 58 – Nada 65

– 394 58 65 394 Nada

58 65 – –

Nueva particion! Se cierra la particion p1 = {22, 146, 309, 334, 394}58 358

358 65 – – 65 63

358 – 63 – Nada 349

358 349 63 – 349 384

358 384 63 – 358 231

– 384 63 231 384 Nada

63 231 – –

Nueva particion! Se cierra la particion p2 = {58, 65, 349, 358, 384}63 264

264 231 – – 231 34

264 – 34 – Nada 4

264 – 34 4 264 Nada

34 4 – –

Nueva particion! Se cierra la particion p3 = {63, 231, 264}4 262

34 262 – – 34 172

172 262 – – 172 70

– 262 70 – Nada 304

304 262 70 – 262 90

304 – 70 90 304 Nada

70 90 – –

Nueva particion! Se cierra la particion p4 = {4, 34, 172, 262, 304}70 354

354 90 – – 90 Nada

354 – – – 354 Nada

Finaliza la ultima particion en p5 = {70, 90, 354}

3.13.2. Salida final

p1 = {22, 146, 309, 334, 394};

p2 = {58, 65, 349, 358, 384};

p3 = {63, 231, 264};

p4 = {4, 34, 172, 262, 304};

p5 = {70, 90, 354}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 506: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 41: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 146, 309, 334, 394 58, 65, 349, 358, 384 63, 231, 264 –4, 34, 172, 262, 304 70, 90, 354 – –

Cuadro 42: Fase 1

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.14.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.14.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

3.15. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

E1 E2 E3 S

22, 146, 309, 334, 394 58, 65, 349, 358, 384 63, 231, 264 22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

E1 E2 S E3

4, 34, 172, 262, 304 70, 90, 354 – 22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

Cuadro 43: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 507: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.15 Seleccion Natural con buffers de tamano 3 67

E1 E2 E3 S

22, 146, 309, 334, 394 58, 65, 349, 358, 384 63, 231, 264 22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

E1 E2 S E3

4, 34, 172, 262, 304 70, 90, 354 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

S E2 E1 E3

– – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 44: Fase final

3.15.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 508: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.16 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 22

22 – – – – – Nada 146

22 146 – – – – Nada 309

22 146 309 – – – 22 394

394 146 309 – – – 146 334

394 334 309 – – – 309 58

394 334 – 58 – – Nada 65

394 334 – 58 65 – Nada 358

394 334 358 58 65 – 334 63

394 – 358 58 65 63 358 Nada

394 – – 58 65 63 394 Nada

58 65 63 – – –

Nueva particion! Se cierra la particion p1 = {22, 146, 309, 334, 358, 394}58 349

349 65 63 – – – 63 384

349 65 384 – – – 65 231

349 231 384 – – – 231 264

349 264 384 – – – 264 34

349 – 384 34 – – Nada 4

349 – 384 34 4 – Nada 262

349 – 384 34 4 262 349 Nada

– – 384 34 4 262 384 Nada

34 4 262 – – –

Nueva particion! Se cierra la particion p2 = {58, 63, 65, 231, 264, 349, 384}4 172

34 172 262 – – – 34 70

70 172 262 – – – 70 304

304 172 262 – – – 172 90

304 – 262 90 – – Nada 354

304 354 262 90 – – 262 Nada

304 354 – 90 – – 304 Nada

– 354 – 90 – – 354 Nada

90 – – – – –

Nueva particion! Se cierra la particion p3 = {4, 34, 70, 172, 262, 304, 354}90 Nada

Finaliza la ultima particion en p4 = {90}

3.15.2. Salida final

p1 = {22, 146, 309, 334, 358, 394};

p2 = {58, 63, 65, 231, 264, 349, 384};

p3 = {4, 34, 70, 172, 262, 304, 354};

p4 = {90}.

3.16. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.16.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Enrique P. Calot Algoritmos y Programacion II

Page 509: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Seleccion de reemplazo con buffer de tamano 4 69

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 45: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 146, 309, 334,358, 394

58, 63, 65, 231, 264,349, 384

4, 34, 70, 172, 262,304, 354

90 – –

Cuadro 46: Fase 1

3.16.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.17. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

3.17.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

E1 E2 E3 S

D 22, 146, 309, 334,358, 394

58, 63, 65, 231, 264,349, 384

22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

E1 E2 S E3

4, 34, 70, 172, 262,304, 354

90 – 22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

Cuadro 47: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 510: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.17 Seleccion de reemplazo con buffer de tamano 4

E1 E2 E3 S

D 22, 146, 309, 334,358, 394

58, 63, 65, 231, 264,349, 384

22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

E1 E2 S E3

4, 34, 70, 172, 262,304, 354

90 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

22, 58, 63, 65, 146,231, 264, 309, 334,349, 358, 384, 394

S E2 E1 E3

– – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 48: Fase final

b1 b2 b3 b4 Sale Entra

– – – – Nada 22

22 – – – Nada 146

22 146 – – Nada 309

22 146 309 – Nada 394

22 146 309 394 22 334

334 146 309 394 146 58

334 58 309 394 309 65

334 58 65 394 334 358

358 58 65 394 358 63

63 58 65 394 394 349

63 58 65 349

Nueva particion! Se cierra la particion p1 =

{22, 146, 309, 334, 358, 394}58 384

63 384 65 349 63 231

231 384 65 349 65 264

231 384 264 349 231 34

34 384 264 349 264 4

34 384 4 349 349 262

34 384 4 262 384 172

34 172 4 262

Nueva particion! Se cierra la particion p2 =

{58, 63, 65, 231, 264, 349, 384}4 70

34 172 70 262 34 304

304 172 70 262 70 90

304 172 90 262 90 354

304 172 354 262 172 Nada

304 – 354 262 262 Nada

304 – 354 – 304 Nada

– – 354 – 354 Nada

Finaliza la ultima particion en p3 = {4, 34, 70, 90, 172, 262, 304, 354}

Enrique P. Calot Algoritmos y Programacion II

Page 511: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.18 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 71

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 49: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 146, 309, 334,358, 394

58, 63, 65, 231, 264,349, 384

4, 34, 70, 90, 172,262, 304, 354

Cuadro 50: Fase 1

3.17.2. Salida final

p1 = {22, 146, 309, 334, 358, 394};

p2 = {58, 63, 65, 231, 264, 349, 384};

p3 = {4, 34, 70, 90, 172, 262, 304, 354}.

3.18. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.18.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.18.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.19. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

3.19.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 512: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.19 Seleccion Natural con buffers de tamano 4

E1 E2 E3 S

22, 146, 309, 334,358, 394

58, 63, 65, 231, 264,349, 384

4, 34, 70, 90, 172,262, 304, 354

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 51: Fase final

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 22

22 – – – – – – – Nada 146

22 146 – – – – – – Nada 309

22 146 309 – – – – – Nada 394

22 146 309 394 – – – – 22 334

334 146 309 394 – – – – 146 58

334 – 309 394 58 – – – Nada 65

334 – 309 394 58 65 – – Nada 358

334 358 309 394 58 65 – – 309 63

334 358 – 394 58 65 63 – Nada 349

334 358 349 394 58 65 63 – 334 384

384 358 349 394 58 65 63 – 349 231

384 358 – 394 58 65 63 231 358 Nada

384 – – 394 58 65 63 231 384 Nada

– – – 394 58 65 63 231 394 Nada

58 65 63 231 – – – –

Nueva particion! Se cierra la particion p1 = {22, 146, 309, 334, 349, 358, 384, 394}58 264

264 65 63 231 – – – – 63 34

264 65 – 231 34 – – – Nada 4

264 65 – 231 34 4 – – Nada 262

264 65 262 231 34 4 – – 65 172

264 172 262 231 34 4 – – 172 70

264 – 262 231 34 4 70 – Nada 304

264 304 262 231 34 4 70 – 231 90

264 304 262 – 34 4 70 90 262 Nada

264 304 – – 34 4 70 90 264 Nada

– 304 – – 34 4 70 90 304 Nada

34 4 70 90 – – – –

Nueva particion! Se cierra la particion p2 = {58, 63, 65, 172, 231, 262, 264, 304}4 354

34 354 70 90 – – – – 34 Nada

– 354 70 90 – – – – 70 Nada

– 354 – 90 – – – – 90 Nada

– 354 – – – – – – 354 Nada

Finaliza la ultima particion en p3 = {4, 34, 70, 90, 354}

Enrique P. Calot Algoritmos y Programacion II

Page 513: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.20 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 73

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 146, 309, 334,349, 358, 384, 394

58, 63, 65, 172, 231,262, 264, 304

4, 34, 70, 90, 354 –

Cuadro 53: Fase 1

3.19.2. Salida final

p1 = {22, 146, 309, 334, 349, 358, 384, 394};

p2 = {58, 63, 65, 172, 231, 262, 264, 304};

p3 = {4, 34, 70, 90, 354}.

3.20. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.20.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.20.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.21. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.21.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 514: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.21 Seleccion de reemplazo con buffer de tamano 5

E1 E2 E3 S

22, 146, 309, 334,349, 358, 384, 394

58, 63, 65, 172, 231,262, 264, 304

4, 34, 70, 90, 354 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 54: Fase final

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 22

22 – – – – Nada 146

22 146 – – – Nada 309

22 146 309 – – Nada 394

22 146 309 394 – Nada 334

22 146 309 394 334 22 58

58 146 309 394 334 58 65

65 146 309 394 334 65 358

358 146 309 394 334 146 63

358 63 309 394 334 309 349

358 63 349 394 334 334 384

358 63 349 394 384 349 231

358 63 231 394 384 358 264

264 63 231 394 384 384 34

264 63 231 394 34 394 4

264 63 231 4 34

Nueva particion! Se cierra la particion p1 =

{22, 58, 65, 146, 309, 334, 349, 358, 384, 394}4 262

264 63 231 262 34 34 172

264 63 231 262 172 63 70

264 70 231 262 172 70 304

264 304 231 262 172 172 90

264 304 231 262 90 231 354

264 304 354 262 90 262 Nada

264 304 354 – 90 264 Nada

– 304 354 – 90 304 Nada

– – 354 – 90 354 Nada

– – – – 90

Nueva particion! Se cierra la particion p2 =

{4, 34, 63, 70, 172, 231, 262, 264, 304, 354}90 Nada

Finaliza la ultima particion en p3 = {90}

3.21.2. Salida final

p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394};

p2 = {4, 34, 63, 70, 172, 231, 262, 264, 304, 354};

Enrique P. Calot Algoritmos y Programacion II

Page 515: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.22 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 75

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 172,231, 262, 264, 304,354

90 –

Cuadro 56: Fase 1

p3 = {90}.

3.22. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.22.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.22.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.23. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.23.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 516: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.23 Seleccion Natural con buffers de tamano 5

E1 E2 E3 S

22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 172,231, 262, 264, 304,354

90 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 57: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 22

22 – – – – – – – – – Nada 146

22 146 – – – – – – – – Nada 309

22 146 309 – – – – – – – Nada 394

22 146 309 394 – – – – – – Nada 334

22 146 309 394 334 – – – – – 22 58

58 146 309 394 334 – – – – – 58 65

65 146 309 394 334 – – – – – 65 358

358 146 309 394 334 – – – – – 146 63

358 – 309 394 334 63 – – – – Nada 349

358 349 309 394 334 63 – – – – 309 384

358 349 384 394 334 63 – – – – 334 231

358 349 384 394 – 63 231 – – – Nada 264

358 349 384 394 – 63 231 264 – – Nada 34

358 349 384 394 – 63 231 264 34 – Nada 4

358 349 384 394 – 63 231 264 34 4 349 Nada

358 – 384 394 – 63 231 264 34 4 358 Nada

– – 384 394 – 63 231 264 34 4 384 Nada

– – – 394 – 63 231 264 34 4 394 Nada

63 231 264 34 4 – – – – –

Nueva particion! Se cierra la particion p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394}4 262

63 231 264 34 262 – – – – – 34 172

63 231 264 172 262 – – – – – 63 70

70 231 264 172 262 – – – – – 70 304

304 231 264 172 262 – – – – – 172 90

304 231 264 – 262 90 – – – – Nada 354

304 231 264 354 262 90 – – – – 231 Nada

304 – 264 354 262 90 – – – – 262 Nada

304 – 264 354 – 90 – – – – 264 Nada

304 – – 354 – 90 – – – – 304 Nada

– – – 354 – 90 – – – – 354 Nada

90 – – – – – – – – –

Nueva particion! Se cierra la particion p2 = {4, 34, 63, 70, 172, 231, 262, 264, 304, 354}90 Nada

Finaliza la ultima particion en p3 = {90}

Enrique P. Calot Algoritmos y Programacion II

Page 517: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.24 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 77

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 58: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 172,231, 262, 264, 304,354

90 –

Cuadro 59: Fase 1

3.23.2. Salida final

p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394};

p2 = {4, 34, 63, 70, 172, 231, 262, 264, 304, 354};

p3 = {90}.

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.24.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.24.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.25. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.25.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 518: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.25 Seleccion de reemplazo con buffer de tamano 6

E1 E2 E3 S

22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 172,231, 262, 264, 304,354

90 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 60: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 22

22 – – – – – Nada 146

22 146 – – – – Nada 309

22 146 309 – – – Nada 394

22 146 309 394 – – Nada 334

22 146 309 394 334 – Nada 58

22 146 309 394 334 58 22 65

65 146 309 394 334 58 58 358

65 146 309 394 334 358 65 63

63 146 309 394 334 358 146 349

63 349 309 394 334 358 309 384

63 349 384 394 334 358 334 231

63 349 384 394 231 358 349 264

63 264 384 394 231 358 358 34

63 264 384 394 231 34 384 4

63 264 4 394 231 34 394 262

63 264 4 262 231 34

Nueva particion! Se cierra la particion p1 =

{22, 58, 65, 146, 309, 334, 349, 358, 384, 394}4 172

63 264 172 262 231 34 34 70

63 264 172 262 231 70 63 304

304 264 172 262 231 70 70 90

304 264 172 262 231 90 90 354

304 264 172 262 231 354 172 Nada

304 264 – 262 231 354 231 Nada

304 264 – 262 – 354 262 Nada

304 264 – – – 354 264 Nada

304 – – – – 354 304 Nada

– – – – – 354 354 Nada

Finaliza la ultima particion en p2 =

{4, 34, 63, 70, 90, 172, 231, 262, 264, 304, 354}

3.25.2. Salida final

p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394};

p2 = {4, 34, 63, 70, 90, 172, 231, 262, 264, 304, 354}.

Enrique P. Calot Algoritmos y Programacion II

Page 519: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.26 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 79

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 61: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 90, 172,231, 262, 264, 304,354

Cuadro 62: Fase 1

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.26.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.26.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.27. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.27.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 520: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.27 Seleccion Natural con buffers de tamano 6

E1 E2 E3 S

D 22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 90, 172,231, 262, 264, 304,354

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 63: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 22

22 – – – – – – – – – – – Nada 146

22 146 – – – – – – – – – – Nada 309

22 146 309 – – – – – – – – – Nada 394

22 146 309 394 – – – – – – – – Nada 334

22 146 309 394 334 – – – – – – – Nada 58

22 146 309 394 334 58 – – – – – – 22 65

65 146 309 394 334 58 – – – – – – 58 358

65 146 309 394 334 358 – – – – – – 65 63

– 146 309 394 334 358 63 – – – – – Nada 349

349 146 309 394 334 358 63 – – – – – 146 384

349 384 309 394 334 358 63 – – – – – 309 231

349 384 – 394 334 358 63 231 – – – – Nada 264

349 384 – 394 334 358 63 231 264 – – – Nada 34

349 384 – 394 334 358 63 231 264 34 – – Nada 4

349 384 – 394 334 358 63 231 264 34 4 – Nada 262

349 384 – 394 334 358 63 231 264 34 4 262 334 Nada

349 384 – 394 – 358 63 231 264 34 4 262 349 Nada

– 384 – 394 – 358 63 231 264 34 4 262 358 Nada

– 384 – 394 – – 63 231 264 34 4 262 384 Nada

– – – 394 – – 63 231 264 34 4 262 394 Nada

63 231 264 34 4 262 – – – – – –

Nueva particion! Se cierra la particion p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394}4 172

63 231 264 34 172 262 – – – – – – 34 70

63 231 264 70 172 262 – – – – – – 63 304

304 231 264 70 172 262 – – – – – – 70 90

304 231 264 90 172 262 – – – – – – 90 354

304 231 264 354 172 262 – – – – – – 172 Nada

304 231 264 354 – 262 – – – – – – 231 Nada

304 – 264 354 – 262 – – – – – – 262 Nada

304 – 264 354 – – – – – – – – 264 Nada

304 – – 354 – – – – – – – – 304 Nada

– – – 354 – – – – – – – – 354 Nada

Finaliza la ultima particion en p2 = {4, 34, 63, 70, 90, 172, 231, 262, 264, 304, 354}

3.27.2. Salida final

p1 = {22, 58, 65, 146, 309, 334, 349, 358, 384, 394};

Enrique P. Calot Algoritmos y Programacion II

Page 521: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.28 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 81

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 64: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 90, 172,231, 262, 264, 304,354

Cuadro 65: Fase 1

p2 = {4, 34, 63, 70, 90, 172, 231, 262, 264, 304, 354}.

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.28.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.28.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 522: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.29 Bubble Sort ascendente

E1 E2 E3 S

D 22, 58, 65, 146, 309,334, 349, 358, 384,394

4, 34, 63, 70, 90, 172,231, 262, 264, 304,354

4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

S E2 E3 E1

– – – 4, 22, 34, 58, 63, 65,70, 90, 146, 172, 231,262, 264, 304, 309,334, 349, 354, 358,384, 394

Cuadro 66: Fase final

3.29. Bubble Sort ascendente

3.29.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 17/20

1 22 146 309 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 394 14/19

2 22 146 309 58 65 334 63 349 358 231 264 34 4 262 172 70 304 90 354 384 394 13/18

3 22 146 58 65 309 63 334 349 231 264 34 4 262 172 70 304 90 354 358 384 394 12/17

4 22 58 65 146 63 309 334 231 264 34 4 262 172 70 304 90 349 354 358 384 394 10/16

5 22 58 65 63 146 309 231 264 34 4 262 172 70 304 90 334 349 354 358 384 394 10/15

6 22 58 63 65 146 231 264 34 4 262 172 70 304 90 309 334 349 354 358 384 394 6/14

7 22 58 63 65 146 231 34 4 262 172 70 264 90 304 309 334 349 354 358 384 394 5/13

8 22 58 63 65 146 34 4 231 172 70 262 90 264 304 309 334 349 354 358 384 394 5/12

9 22 58 63 65 34 4 146 172 70 231 90 262 264 304 309 334 349 354 358 384 394 4/11

10 22 58 63 34 4 65 146 70 172 90 231 262 264 304 309 334 349 354 358 384 394 4/10

11 22 58 34 4 63 65 70 146 90 172 231 262 264 304 309 334 349 354 358 384 394 3/9

12 22 34 4 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 1/8

13 22 4 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 1/7

14 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/6

15 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/5

16 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/4

17 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/3

18 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/2

19 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/1

20 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 523: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.30 Bubble Sort descendente 83

3.30. Bubble Sort descendente

3.30.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 19/20

1 146 309 394 334 58 65 358 63 349 384 231 264 34 22 262 172 70 304 90 354 4 16/19

2 309 394 334 146 65 358 63 349 384 231 264 58 34 262 172 70 304 90 354 22 4 13/18

3 394 334 309 146 358 65 349 384 231 264 63 58 262 172 70 304 90 354 34 22 4 11/17

4 394 334 309 358 146 349 384 231 264 65 63 262 172 70 304 90 354 58 34 22 4 11/16

5 394 334 358 309 349 384 231 264 146 65 262 172 70 304 90 354 63 58 34 22 4 10/15

6 394 358 334 349 384 309 264 231 146 262 172 70 304 90 354 65 63 58 34 22 4 7/14

7 394 358 349 384 334 309 264 231 262 172 146 304 90 354 70 65 63 58 34 22 4 4/13

8 394 358 384 349 334 309 264 262 231 172 304 146 354 90 70 65 63 58 34 22 4 3/12

9 394 384 358 349 334 309 264 262 231 304 172 354 146 90 70 65 63 58 34 22 4 2/11

10 394 384 358 349 334 309 264 262 304 231 354 172 146 90 70 65 63 58 34 22 4 2/10

11 394 384 358 349 334 309 264 304 262 354 231 172 146 90 70 65 63 58 34 22 4 2/9

12 394 384 358 349 334 309 304 264 354 262 231 172 146 90 70 65 63 58 34 22 4 1/8

13 394 384 358 349 334 309 304 354 264 262 231 172 146 90 70 65 63 58 34 22 4 1/7

14 394 384 358 349 334 309 354 304 264 262 231 172 146 90 70 65 63 58 34 22 4 1/6

15 394 384 358 349 334 354 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 1/5

16 394 384 358 349 354 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 1/4

17 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/3

18 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/2

19 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/1

20 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 524: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.31 Bilateral Bubble Sort ascendente

3.31. Bilateral Bubble Sort ascendente

3.31.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 17/20

1 22 146 309 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 394 16/20

2 4 22 146 309 334 58 65 358 63 349 384 231 264 34 70 262 172 90 304 354 394 13/18

3 4 22 146 309 58 65 334 63 349 358 231 264 34 70 262 172 90 304 354 384 394 12/18

4 4 22 34 146 309 58 65 334 63 349 358 231 264 70 90 262 172 304 354 384 394 11/16

5 4 22 34 146 58 65 309 63 334 349 231 264 70 90 262 172 304 354 358 384 394 8/16

6 4 22 34 58 146 63 65 309 70 334 349 231 264 90 172 262 304 354 358 384 394 9/14

7 4 22 34 58 63 65 146 70 309 334 231 264 90 172 262 304 349 354 358 384 394 5/14

8 4 22 34 58 63 65 70 146 90 309 334 231 264 172 262 304 349 354 358 384 394 6/12

9 4 22 34 58 63 65 70 90 146 309 231 264 172 262 304 334 349 354 358 384 394 3/12

10 4 22 34 58 63 65 70 90 146 172 309 231 264 262 304 334 349 354 358 384 394 4/10

11 4 22 34 58 63 65 70 90 146 172 231 264 262 304 309 334 349 354 358 384 394 1/10

12 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/8

13 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/8

14 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/6

15 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/6

16 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/4

17 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/4

18 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/2

19 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/2

20 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 525: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.32 Bilateral Bubble Sort descendente 85

3.32. Bilateral Bubble Sort descendente

3.32.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 19/20

1 146 309 394 334 58 65 358 63 349 384 231 264 34 22 262 172 70 304 90 354 4 17/20

2 394 146 309 384 334 58 65 358 63 349 354 231 264 34 22 262 172 70 304 90 4 15/18

3 394 309 384 334 146 65 358 63 349 354 231 264 58 34 262 172 70 304 90 22 4 13/18

4 394 384 309 358 334 146 65 354 63 349 304 231 264 58 34 262 172 70 90 22 4 11/16

5 394 384 358 334 309 146 354 65 349 304 231 264 63 58 262 172 70 90 34 22 4 8/16

6 394 384 358 354 334 309 146 349 65 304 264 231 262 63 58 172 90 70 34 22 4 8/14

7 394 384 358 354 334 309 349 146 304 264 231 262 65 63 172 90 70 58 34 22 4 6/14

8 394 384 358 354 349 334 309 304 146 264 262 231 172 65 63 90 70 58 34 22 4 6/12

9 394 384 358 354 349 334 309 304 264 262 231 172 146 65 90 70 63 58 34 22 4 1/12

10 394 384 358 354 349 334 309 304 264 262 231 172 146 90 65 70 63 58 34 22 4 1/10

11 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/10

12 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/8

13 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/8

14 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/6

15 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/6

16 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/4

17 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/4

18 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/2

19 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/2

20 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 526: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.33 Selection Sort ascendente

3.33. Selection Sort ascendente

3.33.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 1/20

1 4 146 309 394 334 58 65 358 63 349 384 231 264 34 22 262 172 70 304 90 354 1/19

2 4 22 309 394 334 58 65 358 63 349 384 231 264 34 146 262 172 70 304 90 354 1/18

3 4 22 34 394 334 58 65 358 63 349 384 231 264 309 146 262 172 70 304 90 354 1/17

4 4 22 34 58 334 394 65 358 63 349 384 231 264 309 146 262 172 70 304 90 354 1/16

5 4 22 34 58 63 394 65 358 334 349 384 231 264 309 146 262 172 70 304 90 354 1/15

6 4 22 34 58 63 65 394 358 334 349 384 231 264 309 146 262 172 70 304 90 354 1/14

7 4 22 34 58 63 65 70 358 334 349 384 231 264 309 146 262 172 394 304 90 354 1/13

8 4 22 34 58 63 65 70 90 334 349 384 231 264 309 146 262 172 394 304 358 354 1/12

9 4 22 34 58 63 65 70 90 146 349 384 231 264 309 334 262 172 394 304 358 354 1/11

10 4 22 34 58 63 65 70 90 146 172 384 231 264 309 334 262 349 394 304 358 354 1/10

11 4 22 34 58 63 65 70 90 146 172 231 384 264 309 334 262 349 394 304 358 354 1/9

12 4 22 34 58 63 65 70 90 146 172 231 262 264 309 334 384 349 394 304 358 354 1/8

13 4 22 34 58 63 65 70 90 146 172 231 262 264 309 334 384 349 394 304 358 354 1/7

14 4 22 34 58 63 65 70 90 146 172 231 262 264 304 334 384 349 394 309 358 354 1/6

15 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 384 349 394 334 358 354 1/5

16 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 394 384 358 354 1/4

17 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 394 384 358 354 1/3

18 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 384 358 394 1/2

19 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 1/1

20 4 22 34 58 63 65 70 90 146 172 231 262 264 304 309 334 349 354 358 384 394 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 527: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.34 Selection Sort descendente 87

3.34. Selection Sort descendente

3.34.1. Desarrollo

0 22 146 309 394 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 1/20

1 394 146 309 22 334 58 65 358 63 349 384 231 264 34 4 262 172 70 304 90 354 1/19

2 394 384 309 22 334 58 65 358 63 349 146 231 264 34 4 262 172 70 304 90 354 1/18

3 394 384 358 22 334 58 65 309 63 349 146 231 264 34 4 262 172 70 304 90 354 1/17

4 394 384 358 354 334 58 65 309 63 349 146 231 264 34 4 262 172 70 304 90 22 1/16

5 394 384 358 354 349 58 65 309 63 334 146 231 264 34 4 262 172 70 304 90 22 1/15

6 394 384 358 354 349 334 65 309 63 58 146 231 264 34 4 262 172 70 304 90 22 1/14

7 394 384 358 354 349 334 309 65 63 58 146 231 264 34 4 262 172 70 304 90 22 1/13

8 394 384 358 354 349 334 309 304 63 58 146 231 264 34 4 262 172 70 65 90 22 1/12

9 394 384 358 354 349 334 309 304 264 58 146 231 63 34 4 262 172 70 65 90 22 1/11

10 394 384 358 354 349 334 309 304 264 262 146 231 63 34 4 58 172 70 65 90 22 1/10

11 394 384 358 354 349 334 309 304 264 262 231 146 63 34 4 58 172 70 65 90 22 1/9

12 394 384 358 354 349 334 309 304 264 262 231 172 63 34 4 58 146 70 65 90 22 1/8

13 394 384 358 354 349 334 309 304 264 262 231 172 146 34 4 58 63 70 65 90 22 1/7

14 394 384 358 354 349 334 309 304 264 262 231 172 146 90 4 58 63 70 65 34 22 1/6

15 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 58 63 4 65 34 22 1/5

16 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 4 58 34 22 1/4

17 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 4 58 34 22 1/3

18 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 4 34 22 1/2

19 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 4 22 1/1

20 394 384 358 354 349 334 309 304 264 262 231 172 146 90 70 65 63 58 34 22 4 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 528: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-08-02

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

22, 146, 309, 394, 334†, 58, 65, 358†, 63†, 349, 384†, 231, 264, 34, 4, 262†, 172, 70†,

304, 90, 354†

Se pide:

a. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

b. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones ordenadastomadas del lote de datos.

c. Se dice que el orden del algoritmo de Heap Sort es de O(n log2n), explique con sus palabras de donde sale

ese logaritmo.

d. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

262, 231†, 304†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

e. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero) y Heap Sort en orden ascendente(hacer al menos 1 swapdown).

Page 529: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 13 de Diciembre de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-12-13

*[email protected]

Page 530: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 6

2.1. a. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 62.1.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3. b. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4. b. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5. c. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6. d. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7. e. Seleccion de reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.7.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.7.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Resolucion explayada 15

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2. Quick Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5. Merge Polifasico de las salidas por seleccion de reemplazo . . . . . . . . . . . . . . . . . . 473.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 493.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.7. Merge Polifasico completo con particiones formadas de 1 elemento . . . . . . . . . . . . . 503.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 503.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.8. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 503.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 523.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.9. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 523.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 523.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.10. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 573.10.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 57

Enrique P. Calot Algoritmos y Programacion II

Page 531: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.10.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.11. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 57

3.11.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.11.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 633.12.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 643.12.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.13. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.13.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.13.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 673.14.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 673.14.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.15. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.15.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.15.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.16. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 693.16.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 693.16.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.17. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 703.17.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.17.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.18. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 723.18.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 723.18.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.19. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.19.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.19.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.20. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 743.20.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 743.20.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.21. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 743.21.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.21.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.22. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 763.22.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 763.22.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.23. Seleccion Natural con buffers de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano 5 . . . . . . . . . . 783.24.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.24.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.25. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 783.25.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.25.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 803.26.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 803.26.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 532: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 823.28.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 823.28.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.34. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883.34.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Enrique P. Calot Algoritmos y Programacion II

Page 533: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

40, 254, 177, 400, 256†, 147, 376, 89†, 95†, 274, 382†, 16, 205, 217, 42,

182†, 179, 172†, 245, 176, 313†

Se pide:

a. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

b. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown), QuickSort (hasta haber completado dos niveles de recursividad) y Radix Sort en orden ascendente (en-tero).

c. Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem,se sabe que solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado enuna maquina con una memoria interna comparable a 2p2×sizeof(tElem). Dispone de las siguientessoluciones:

a) Sort externo: seleccion de reemplazo (se asume M ≥ 3) y merge polifasico

b) Sort externo: seleccion natural (se asume M ≥ 3) y merge polifasico

c) Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2 elementos ymerge polifasico

d) Sort interno: quick sort de pivoteo en el primer elemento

e) Sort interno: quick sort de pivoteo en el ultimo elemento

f ) Sort interno: bubble sort bilateral (recorre en ambos sentidos y tiene un flag para cortar si nohay intercambios)

g) Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap elpadre es mayor a los hijos)

h) Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap elpadre es menor a los hijos)

i) Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

d. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

205, 182†, 245†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

e. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 534: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2 Resolucion estricta

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Merge Polifasico

Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones orde-nadas tomadas del lote de datos.

2.1.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.1.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

2.2. b. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

Enrique P. Calot Algoritmos y Programacion II

Page 535: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.2 b. Radix Sort 7

E1 E2 E3 S

D D D –D D D –D D D –D 40 254 –177 400 256 –147 376 89 –95 274 382 –16 205 – –217 42 – –182 179 – –172 245 – –176 – – –313 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 – D

217 42 – D

182 179 – D

172 245 – 40, 254176 – – 177, 256, 400313 – – 89, 147, 376– – – 95, 274, 382

Cuadro 3: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 536: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.2 b. Radix Sort

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 16, 205 D

217 42 42, 217 D

182 179 179, 182 D

172 245 40, 172, 245, 254 40, 254

E1 S E2 E3

176 – 16, 205 177, 256, 400313 – 42, 217 89, 147, 376– – 179, 182 95, 274, 382– – 40, 172, 245, 254 –

Cuadro 4: Fase 3

2.2.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Enrique P. Calot Algoritmos y Programacion II

Page 537: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.3 b. Quick Sort 9

Paso 0 Paso 1 Paso 2 Paso 3040 040 400 016254 400 205 040177 382 313 042400 042 016 089256 182 217 095147 172 040 147376 313 042 172089 254 245 176095 274 147 177274 095 254 179382 205 256 182016 245 172 205205 256 274 217217 376 376 245042 016 176 254182 176 177 256179 177 179 274172 147 382 313245 217 182 376176 089 089 382313 179 095 400

2.3. b. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

2.3.1. Desarrollo

Paso 1 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313

Paso 2 16 40 177 400 256 147 376 89 95 274 382 254 205 217 42 182 179 172 245 176 313

Paso 3 95 176 172 147 42 89 177 274 382 254 205 217 376 182 179 256 245 400 313

Final 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400

2.4. b. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 538: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.4 b. Heap Sort

2.4.1. Arbol inicial

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313

Arbol inicial y su vector asociadoHeapfy paso 0

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382

16 205 217 42 182 179 172 245 176 313

Heapfy paso 1

40

254 177

400 256 147 376

182 245 313 382 16 205 217 42

89 179 172 95 176 274

Vector:

40 254 177 400 256 147 376 182 245 313 382

16 205 217 42 89 179 172 95 176 274

Heapfy paso 2

Enrique P. Calot Algoritmos y Programacion II

Page 539: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.4 b. Heap Sort 11

40

254 177

400 382 205 376

182 245 313 256 16 147 217 42

89 179 172 95 176 274

Vector:

40 254 177 400 382 205 376 182 245 313 256

16 147 217 42 89 179 172 95 176 274

Heapfy paso 3

40

400 376

254 382 205 217

182 245 313 256 16 147 177 42

89 179 172 95 176 274

Vector:

40 400 376 254 382 205 217 182 245 313 256

16 147 177 42 89 179 172 95 176 274

Heapfy paso 4

400

382 376

254 313 205 217

182 245 274 256 16 147 177 42

89 179 172 95 176 40

Vector:

400 382 376 254 313 205 217 182 245 274 256

16 147 177 42 89 179 172 95 176 40

Algoritmos y Programacion II Facultad de Ingenierıa

Page 540: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.5 c. Pregunta teorica

40

382 376

254 313 205 217

182 245 274 256 16 147 177 42

89 179 172 95 176 400

Vector:

40 382 376 254 313 205 217 182 245 274 256

16 147 177 42 89 179 172 95 176 400

Paso 1: ultimo congelado pedido antes del corte

2.5. c. Pregunta teorica

Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem,se sabe que solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado enuna maquina con una memoria interna comparable a 2p2 × sizeof(tElem). Dispone de las siguientessoluciones:

a. Sort externo: seleccion de reemplazo (se asume M ≥ 3) y merge polifasico

b. Sort externo: seleccion natural (se asume M ≥ 3) y merge polifasico

c. Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2 elementos y merge

polifasico

d. Sort interno: quick sort de pivoteo en el primer elemento

e. Sort interno: quick sort de pivoteo en el ultimo elemento

f. Sort interno: bubble sort bilateral (recorre en ambos sentidos y tiene un flag para cortar si no hayintercambios)

g. Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap el padrees mayor a los hijos)

h. Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap el padrees menor a los hijos)

i. Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

2.5.1. Respuesta

La mejor solucion es bubble sort, porque en como maximo 3 recorridas (3p comparaciones) se garantizael ordenamiento (del orden de O(p)), el sort externo queda descartado porque es menos optimo y el internose puede utilizar (la informacion entra en la memoria interna y se encuentra disponible), selection sort sedescarta por ser de orden O(p2) (incluso si el arreglo esta semi-ordenado), heap sort es de orden O(p log p)

Enrique P. Calot Algoritmos y Programacion II

Page 541: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 d. Ejercicio de B-trees 13

y ambas implementaciones de quick sort resultan ineficientes para un arreglo semi-ordenado (en este casoserıan casi de orden O(p2)).

2.6. d. Ejercicio de B-trees

Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

205, 182†, 245†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.6.1. Insercion

•254•

×40×177× ×256×400×

Insercion de 5 elementos: 40, 254, 177, 400, 256

•254•

×40×89×147×177× ×256×376×400×

Insercion de 3 elementos: 147, 376, 89

•95•254•

×40×89× ×147×177× ×256×376×400×

Insercion de 1 elemento: 95

•95•254•376•

×40×89× ×147×177× ×256×274× ×382×400×

Insercion de 2 elementos: 274, 382

•95•182•254•376•

×16×40×42×89× ×147×177× ×205×217× ×256×274× ×382×400×

Insercion de 5 elementos: 16, 205, 217, 42, 182

•95•182•254•376•

×16×40×42×89× ×147×172×177×179× ×205×217× ×256×274× ×382×400×

Insercion de 2 elementos: 179, 172

•182•

•95•176• •254•376•

×16×40×42×89× ×147×172× ×177×179× ×205×217×245× ×256×274×313× ×382×400×

Insercion de 3 elementos: 245, 176, 313

Algoritmos y Programacion II Facultad de Ingenierıa

Page 542: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 2.7 e. Seleccion de reemplazo

2.6.2. Eliminacion

•95•176•254•376•

×16×40×42×89× ×147×172× ×177×179×217×245× ×256×274×313× ×382×400×

Eliminacion de 2 elementos: 205, 182

•95•176•254•376•

×16×40×42×89× ×147×172× ×177×179×217× ×256×274×313× ×382×400×

Eliminacion de 1 elemento: 245

2.7. e. Seleccion de reemplazo

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

2.7.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 Sale Entra

– – – Nada 40

40 – – Nada 254

40 254 – Nada 177

40 254 177 40 400

400 254 177 177 256

400 254 256 254 147

400 147 256 256 376

400 147 376 376 89

400 147 89 400 95

95 147 89

Nueva particion! Se cierra la particion p1 =

{40, 177, 254, 256, 376, 400}89 274

95 147 274 95 382

382 147 274 147 16

382 16 274 274 205

382 16 205 382 217

217 16 205

Nueva particion! Se cierra la particion p2 = {89, 95, 147, 274, 382}16 42

217 42 205 42 182

217 182 205 182 179

217 179 205 205 172

217 179 172 217 245

245 179 172 245 176

176 179 172

Nueva particion! Se cierra la particion p3 = {16, 42, 182, 205, 217, 245}172 313

176 179 313 176 Nada

– 179 313 179 Nada

– – 313 313 Nada

Finaliza la ultima particion en p4 = {172, 176, 179, 313}

Enrique P. Calot Algoritmos y Programacion II

Page 543: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3 Resolucion explayada 15

2.7.2. Salida final

p1 = {40, 177, 254, 256, 376, 400};

p2 = {89, 95, 147, 274, 382};

p3 = {16, 42, 182, 205, 217, 245};

p4 = {172, 176, 179, 313}.

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Paso 0 Paso 1 Paso 2 Paso 3040 089 095 400254 179 089 382177 177 382 376400 147 182 313256 217 179 274147 256 177 256376 376 376 254089 016 176 245095 176 274 217274 095 172 205382 205 256 182016 245 254 179205 254 147 177217 274 245 176042 313 042 172182 382 040 147179 042 217 095172 182 016 089245 172 313 042176 040 205 040313 400 400 016

3.2. Quick Sort completo

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 544: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

3.2.1. Desarrollo

Paso 1 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313

Paso 2 16 40 177 400 256 147 376 89 95 274 382 254 205 217 42 182 179 172 245 176 313

Paso 3 95 176 172 147 42 89 177 274 382 254 205 217 376 182 179 256 245 400 313

Paso 4 42 89 95 147 172 176 179 245 254 205 217 256 182 274 376 382 400 313

Paso 5 42 89 147 172 176 179 245 254 205 217 256 182 313 376 400 382

Paso 6 172 176 217 182 205 245 256 254 382 400

Paso 7 205 182 217 254 256

Final 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

3.3.1. Arbol inicial

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313

Arbol inicial y su vector asociadoHeapfy paso 0

Enrique P. Calot Algoritmos y Programacion II

Page 545: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382

16 205 217 42 182 179 172 245 176 313

Heapfy paso 1

40

254 177

400 256 147 376

182 245 313 382 16 205 217 42

89 179 172 95 176 274

Vector:

40 254 177 400 256 147 376 182 245 313 382

16 205 217 42 89 179 172 95 176 274

Heapfy paso 2

40

254 177

400 382 205 376

182 245 313 256 16 147 217 42

89 179 172 95 176 274

Vector:

40 254 177 400 382 205 376 182 245 313 256

16 147 217 42 89 179 172 95 176 274

Heapfy paso 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 546: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

40

400 376

254 382 205 217

182 245 313 256 16 147 177 42

89 179 172 95 176 274

Vector:

40 400 376 254 382 205 217 182 245 313 256

16 147 177 42 89 179 172 95 176 274

Heapfy paso 4

400

382 376

254 313 205 217

182 245 274 256 16 147 177 42

89 179 172 95 176 40

Vector:

400 382 376 254 313 205 217 182 245 274 256

16 147 177 42 89 179 172 95 176 40

Intercambio y congelamiento

40

382 376

254 313 205 217

182 245 274 256 16 147 177 42

89 179 172 95 176 400

Vector:

40 382 376 254 313 205 217 182 245 274 256

16 147 177 42 89 179 172 95 176 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 547: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

382

313 376

254 274 205 217

182 245 176 256 16 147 177 42

89 179 172 95 40 400

Vector:

382 313 376 254 274 205 217 182 245 176 256

16 147 177 42 89 179 172 95 40 400

Intercambio y congelamiento

40

313 376

254 274 205 217

182 245 176 256 16 147 177 42

89 179 172 95 382 400

Vector:

40 313 376 254 274 205 217 182 245 176 256

16 147 177 42 89 179 172 95 382 400

Swapdown

376

313 217

254 274 205 177

182 245 176 256 16 147 40 42

89 179 172 95 382 400

Vector:

376 313 217 254 274 205 177 182 245 176 256

16 147 40 42 89 179 172 95 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 548: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

95

313 217

254 274 205 177

182 245 176 256 16 147 40 42

89 179 172 376 382 400

Vector:

95 313 217 254 274 205 177 182 245 176 256

16 147 40 42 89 179 172 376 382 400

Swapdown

313

274 217

254 256 205 177

182 245 176 95 16 147 40 42

89 179 172 376 382 400

Vector:

313 274 217 254 256 205 177 182 245 176 95

16 147 40 42 89 179 172 376 382 400

Intercambio y congelamiento

172

274 217

254 256 205 177

182 245 176 95 16 147 40 42

89 179 313 376 382 400

Vector:

172 274 217 254 256 205 177 182 245 176 95

16 147 40 42 89 179 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 549: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

274

256 217

254 176 205 177

182 245 172 95 16 147 40 42

89 179 313 376 382 400

Vector:

274 256 217 254 176 205 177 182 245 172 95

16 147 40 42 89 179 313 376 382 400

Intercambio y congelamiento

179

256 217

254 176 205 177

182 245 172 95 16 147 40 42

89 274 313 376 382 400

Vector:

179 256 217 254 176 205 177 182 245 172 95

16 147 40 42 89 274 313 376 382 400

Swapdown

256

254 217

245 176 205 177

182 179 172 95 16 147 40 42

89 274 313 376 382 400

Vector:

256 254 217 245 176 205 177 182 179 172 95

16 147 40 42 89 274 313 376 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 550: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

89

254 217

245 176 205 177

182 179 172 95 16 147 40 42

256 274 313 376 382 400

Vector:

89 254 217 245 176 205 177 182 179 172 95

16 147 40 42 256 274 313 376 382 400

Swapdown

254

245 217

182 176 205 177

89 179 172 95 16 147 40 42

256 274 313 376 382 400

Vector:

254 245 217 182 176 205 177 89 179 172 95

16 147 40 42 256 274 313 376 382 400

Intercambio y congelamiento

42

245 217

182 176 205 177

89 179 172 95 16 147 40 254

256 274 313 376 382 400

Vector:

42 245 217 182 176 205 177 89 179 172 95

16 147 40 254 256 274 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 551: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

245

182 217

179 176 205 177

89 42 172 95 16 147 40 254

256 274 313 376 382 400

Vector:

245 182 217 179 176 205 177 89 42 172 95

16 147 40 254 256 274 313 376 382 400

Intercambio y congelamiento

40

182 217

179 176 205 177

89 42 172 95 16 147 245 254

256 274 313 376 382 400

Vector:

40 182 217 179 176 205 177 89 42 172 95

16 147 245 254 256 274 313 376 382 400

Swapdown

217

182 205

179 176 147 177

89 42 172 95 16 40 245 254

256 274 313 376 382 400

Vector:

217 182 205 179 176 147 177 89 42 172 95

16 40 245 254 256 274 313 376 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 552: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

40

182 205

179 176 147 177

89 42 172 95 16 217 245 254

256 274 313 376 382 400

Vector:

40 182 205 179 176 147 177 89 42 172 95

16 217 245 254 256 274 313 376 382 400

Swapdown

205

182 177

179 176 147 40

89 42 172 95 16 217 245 254

256 274 313 376 382 400

Vector:

205 182 177 179 176 147 40 89 42 172 95

16 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

16

182 177

179 176 147 40

89 42 172 95 205 217 245 254

256 274 313 376 382 400

Vector:

16 182 177 179 176 147 40 89 42 172 95

205 217 245 254 256 274 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 553: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

182

179 177

89 176 147 40

16 42 172 95 205 217 245 254

256 274 313 376 382 400

Vector:

182 179 177 89 176 147 40 16 42 172 95

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

95

179 177

89 176 147 40

16 42 172 182 205 217 245 254

256 274 313 376 382 400

Vector:

95 179 177 89 176 147 40 16 42 172 182

205 217 245 254 256 274 313 376 382 400

Swapdown

179

176 177

89 172 147 40

16 42 95 182 205 217 245 254

256 274 313 376 382 400

Vector:

179 176 177 89 172 147 40 16 42 95 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 554: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

95

176 177

89 172 147 40

16 42 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

95 176 177 89 172 147 40 16 42 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

177

176 147

89 172 95 40

16 42 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

177 176 147 89 172 95 40 16 42 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

42

176 147

89 172 95 40

16 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

42 176 147 89 172 95 40 16 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 555: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

176

172 147

89 42 95 40

16 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

176 172 147 89 42 95 40 16 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

16

172 147

89 42 95 40

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

16 172 147 89 42 95 40 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

172

89 147

16 42 95 40

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

172 89 147 16 42 95 40 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 556: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

40

89 147

16 42 95 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

40 89 147 16 42 95 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

147

89 95

16 42 40 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

147 89 95 16 42 40 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

40

89 95

16 42 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

40 89 95 16 42 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 557: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

95

89 40

16 42 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

95 89 40 16 42 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

42

89 40

16 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

42 89 40 16 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

89

42 40

16 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

89 42 40 16 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 558: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.3 Heap Sort completo

16

42 40

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

16 42 40 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

42

16 40

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

42 16 40 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

40

16 42

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

40 16 42 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 559: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

40

16 42

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

40 16 42 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Intercambio y congelamiento

16

40 42

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

16 40 42 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

Swapdown

16

40 42

89 95 147 172

176 177 179 182 205 217 245 254

256 274 313 376 382 400

Vector:

16 40 42 89 95 147 172 176 177 179 182

205 217 245 254 256 274 313 376 382 400

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 560: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

3.4.1. Arbol inicial

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313

Arbol inicial y su vector asociadoHeapfy paso 0

40

254 177

400 256 147 376

89 95 274 382 16 205 217 42

182 179 172 245 176 313

Vector:

40 254 177 400 256 147 376 89 95 274 382

16 205 217 42 182 179 172 245 176 313

Heapfy paso 1

40

254 177

400 256 147 376

89 95 176 382 16 205 217 42

182 179 172 245 274 313

Vector:

40 254 177 400 256 147 376 89 95 176 382

16 205 217 42 182 179 172 245 274 313

Heapfy paso 2

Enrique P. Calot Algoritmos y Programacion II

Page 561: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

40

254 177

89 176 16 42

179 95 256 382 147 205 217 376

182 400 172 245 274 313

Vector:

40 254 177 89 176 16 42 179 95 256 382

147 205 217 376 182 400 172 245 274 313

Heapfy paso 3

40

89 16

95 176 147 42

179 172 256 382 177 205 217 376

182 400 254 245 274 313

Vector:

40 89 16 95 176 147 42 179 172 256 382

177 205 217 376 182 400 254 245 274 313

Heapfy paso 4

16

89 40

95 176 147 42

179 172 256 382 177 205 217 376

182 400 254 245 274 313

Vector:

16 89 40 95 176 147 42 179 172 256 382

177 205 217 376 182 400 254 245 274 313

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 562: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

313

89 40

95 176 147 42

179 172 256 382 177 205 217 376

182 400 254 245 274 16

Vector:

313 89 40 95 176 147 42 179 172 256 382

177 205 217 376 182 400 254 245 274 16

Swapdown

40

89 42

95 176 147 217

179 172 256 382 177 205 313 376

182 400 254 245 274 16

Vector:

40 89 42 95 176 147 217 179 172 256 382

177 205 313 376 182 400 254 245 274 16

Intercambio y congelamiento

274

89 42

95 176 147 217

179 172 256 382 177 205 313 376

182 400 254 245 40 16

Vector:

274 89 42 95 176 147 217 179 172 256 382

177 205 313 376 182 400 254 245 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 563: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

42

89 147

95 176 177 217

179 172 256 382 274 205 313 376

182 400 254 245 40 16

Vector:

42 89 147 95 176 177 217 179 172 256 382

274 205 313 376 182 400 254 245 40 16

Intercambio y congelamiento

245

89 147

95 176 177 217

179 172 256 382 274 205 313 376

182 400 254 42 40 16

Vector:

245 89 147 95 176 177 217 179 172 256 382

274 205 313 376 182 400 254 42 40 16

Swapdown

89

95 147

172 176 177 217

179 245 256 382 274 205 313 376

182 400 254 42 40 16

Vector:

89 95 147 172 176 177 217 179 245 256 382

274 205 313 376 182 400 254 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 564: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

254

95 147

172 176 177 217

179 245 256 382 274 205 313 376

182 400 89 42 40 16

Vector:

254 95 147 172 176 177 217 179 245 256 382

274 205 313 376 182 400 89 42 40 16

Swapdown

95

172 147

179 176 177 217

182 245 256 382 274 205 313 376

254 400 89 42 40 16

Vector:

95 172 147 179 176 177 217 182 245 256 382

274 205 313 376 254 400 89 42 40 16

Intercambio y congelamiento

400

172 147

179 176 177 217

182 245 256 382 274 205 313 376

254 95 89 42 40 16

Vector:

400 172 147 179 176 177 217 182 245 256 382

274 205 313 376 254 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 565: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

147

172 177

179 176 205 217

182 245 256 382 274 400 313 376

254 95 89 42 40 16

Vector:

147 172 177 179 176 205 217 182 245 256 382

274 400 313 376 254 95 89 42 40 16

Intercambio y congelamiento

254

172 177

179 176 205 217

182 245 256 382 274 400 313 376

147 95 89 42 40 16

Vector:

254 172 177 179 176 205 217 182 245 256 382

274 400 313 376 147 95 89 42 40 16

Swapdown

172

176 177

179 254 205 217

182 245 256 382 274 400 313 376

147 95 89 42 40 16

Vector:

172 176 177 179 254 205 217 182 245 256 382

274 400 313 376 147 95 89 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 566: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

376

176 177

179 254 205 217

182 245 256 382 274 400 313 172

147 95 89 42 40 16

Vector:

376 176 177 179 254 205 217 182 245 256 382

274 400 313 172 147 95 89 42 40 16

Swapdown

176

179 177

182 254 205 217

376 245 256 382 274 400 313 172

147 95 89 42 40 16

Vector:

176 179 177 182 254 205 217 376 245 256 382

274 400 313 172 147 95 89 42 40 16

Intercambio y congelamiento

313

179 177

182 254 205 217

376 245 256 382 274 400 176 172

147 95 89 42 40 16

Vector:

313 179 177 182 254 205 217 376 245 256 382

274 400 176 172 147 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 567: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

177

179 205

182 254 274 217

376 245 256 382 313 400 176 172

147 95 89 42 40 16

Vector:

177 179 205 182 254 274 217 376 245 256 382

313 400 176 172 147 95 89 42 40 16

Intercambio y congelamiento

400

179 205

182 254 274 217

376 245 256 382 313 177 176 172

147 95 89 42 40 16

Vector:

400 179 205 182 254 274 217 376 245 256 382

313 177 176 172 147 95 89 42 40 16

Swapdown

179

182 205

245 254 274 217

376 400 256 382 313 177 176 172

147 95 89 42 40 16

Vector:

179 182 205 245 254 274 217 376 400 256 382

313 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 568: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

313

182 205

245 254 274 217

376 400 256 382 179 177 176 172

147 95 89 42 40 16

Vector:

313 182 205 245 254 274 217 376 400 256 382

179 177 176 172 147 95 89 42 40 16

Swapdown

182

245 205

313 254 274 217

376 400 256 382 179 177 176 172

147 95 89 42 40 16

Vector:

182 245 205 313 254 274 217 376 400 256 382

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

382

245 205

313 254 274 217

376 400 256 182 179 177 176 172

147 95 89 42 40 16

Vector:

382 245 205 313 254 274 217 376 400 256 182

179 177 176 172 147 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 569: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

205

245 217

313 254 274 382

376 400 256 182 179 177 176 172

147 95 89 42 40 16

Vector:

205 245 217 313 254 274 382 376 400 256 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

256

245 217

313 254 274 382

376 400 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

256 245 217 313 254 274 382 376 400 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

217

245 256

313 254 274 382

376 400 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

217 245 256 313 254 274 382 376 400 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 570: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

400

245 256

313 254 274 382

376 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

400 245 256 313 254 274 382 376 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

245

254 256

313 400 274 382

376 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

245 254 256 313 400 274 382 376 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

376

254 256

313 400 274 382

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

376 254 256 313 400 274 382 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 571: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

254

313 256

376 400 274 382

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

254 313 256 376 400 274 382 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

382

313 256

376 400 274 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

382 313 256 376 400 274 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

256

313 274

376 400 382 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

256 313 274 376 400 382 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 572: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

382

313 274

376 400 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

382 313 274 376 400 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

274

313 382

376 400 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

274 313 382 376 400 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

400

313 382

376 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

400 313 382 376 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 573: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 45

313

376 382

400 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

313 376 382 400 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

400

376 382

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

400 376 382 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

376

400 382

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

376 400 382 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 574: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.4 Heap Sort descendente

382

400 376

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

382 400 376 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

382

400 376

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

382 400 376 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Intercambio y congelamiento

400

382 376

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

400 382 376 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 575: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion de reemplazo 47

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 5: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 –

16, 42, 182, 205, 217,245

172, 176, 179, 313 – –

Cuadro 6: Fase 1

400

382 376

313 274 256 254

245 217 205 182 179 177 176 172

147 95 89 42 40 16

Vector:

400 382 376 313 274 256 254 245 217 205 182

179 177 176 172 147 95 89 42 40 16

3.5. Merge Polifasico de las salidas por seleccion de reemplazo

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 576: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.5 Merge Polifasico de las salidas por seleccion de reemplazo

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

E1 E2 S E3

16, 42, 182, 205, 217,245

172, 176, 179, 313 – 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

Cuadro 7: Fase 2

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

E1 E2 S E3

16, 42, 182, 205, 217,245

172, 176, 179, 313 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

S E2 E1 E3

– – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 8: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 577: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.6 Merge Polifasico de las particiones marcadas 49

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 9: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 40, 177, 254, 256, 400 –89, 147, 376 95 274, 382 –16, 42, 182, 205, 217 172, 179 – –176, 245, 313 – – –

Cuadro 10: Fase 1

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {40, 177, 254, 256, 400}; p2 = {89, 147, 376}; . . . ; p6 = {172, 179}; p7 = {176, 245, 313}.

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

E1 E2 E3 S

D D 40, 177, 254, 256, 400 40, 177, 254, 256, 40089, 147, 376 95 274, 382 89, 95, 147, 274, 376,

382

E1 E2 S E3

16, 42, 182, 205, 217 172, 179 – 40, 177, 254, 256, 400176, 245, 313 – – 89, 95, 147, 274, 376,

382

Cuadro 11: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 578: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.7 Merge Polifasico completo con particiones formadas de 1 elemento

E1 E2 E3 S

D D 40, 177, 254, 256, 400 40, 177, 254, 256, 40089, 147, 376 95 274, 382 89, 95, 147, 274, 376,

382

E1 E2 S E3

16, 42, 182, 205, 217 172, 179 16, 40, 42, 172, 177,179, 182, 205, 217,254, 256, 400

40, 177, 254, 256, 400

E1 S E2 E3

176, 245, 313 – 16, 40, 42, 172, 177,179, 182, 205, 217,254, 256, 400

89, 95, 147, 274, 376,382

Cuadro 12: Fase 3

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 13: Calculo de la distribucion de columnas y dummies

3.7. Merge Polifasico completo con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {40, 254}; p2 = {177, 400}; . . . ; p10 = {176, 245}; p11 = {313}.

Enrique P. Calot Algoritmos y Programacion II

Page 579: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.8 Merge Polifasico con particiones formadas de 2 elementos 51

E1 E2 E3 S

D D D –D D D –D D D –D 40 254 –177 400 256 –147 376 89 –95 274 382 –16 205 – –217 42 – –182 179 – –172 245 – –176 – – –313 – – –

Cuadro 14: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 – D

217 42 – D

182 179 – D

172 245 – 40, 254176 – – 177, 256, 400313 – – 89, 147, 376– – – 95, 274, 382

Cuadro 15: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 580: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 16, 205 D

217 42 42, 217 D

182 179 179, 182 D

172 245 40, 172, 245, 254 40, 254

E1 S E2 E3

176 – 16, 205 177, 256, 400313 – 42, 217 89, 147, 376– – 179, 182 95, 274, 382– – 40, 172, 245, 254 –

Cuadro 16: Fase 3

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {40, 177, 254}; p2 = {147, 256, 400}; . . . ; p6 = {172, 179, 182}; p7 = {176, 245, 313}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de las

Enrique P. Calot Algoritmos y Programacion II

Page 581: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 53

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 16, 205 D

217 42 42, 217 D

182 179 179, 182 D

172 245 40, 172, 245, 254 40, 254

E1 S E2 E3

176 16, 176, 177, 205,256, 400

16, 205 177, 256, 400

313 42, 89, 147, 217, 313,376

42, 217 89, 147, 376

S E1 E2 E3

– 16, 176, 177, 205,256, 400

179, 182 95, 274, 382

– 42, 89, 147, 217, 313,376

40, 172, 245, 254 –

Cuadro 17: Fase 4

Algoritmos y Programacion II Facultad de Ingenierıa

Page 582: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 16, 205 D

217 42 42, 217 D

182 179 179, 182 D

172 245 40, 172, 245, 254 40, 254

E1 S E2 E3

176 16, 176, 177, 205,256, 400

16, 205 177, 256, 400

313 42, 89, 147, 217, 313,376

42, 217 89, 147, 376

S E1 E2 E3

16, 95, 176, 177, 179,182, 205, 256, 274,382, 400

16, 176, 177, 205,256, 400

179, 182 95, 274, 382

E3 E1 E2 S

16, 95, 176, 177, 179,182, 205, 256, 274,382, 400

42, 89, 147, 217, 313,376

40, 172, 245, 254 –

Cuadro 18: Fase 5

Enrique P. Calot Algoritmos y Programacion II

Page 583: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 55

E1 E2 E3 S

D D D D

D D D D

D D D D

D 40 254 40, 254177 400 256 177, 256, 400147 376 89 89, 147, 37695 274 382 95, 274, 382

E1 E2 S E3

16 205 16, 205 D

217 42 42, 217 D

182 179 179, 182 D

172 245 40, 172, 245, 254 40, 254

E1 S E2 E3

176 16, 176, 177, 205,256, 400

16, 205 177, 256, 400

313 42, 89, 147, 217, 313,376

42, 217 89, 147, 376

S E1 E2 E3

16, 95, 176, 177, 179,182, 205, 256, 274,382, 400

16, 176, 177, 205,256, 400

179, 182 95, 274, 382

E3 E1 E2 S

16, 95, 176, 177, 179,182, 205, 256, 274,382, 400

42, 89, 147, 217, 313,376

40, 172, 245, 254 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E1 E2 E3

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 19: Fase final

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 20: Calculo de la distribucion de columnas y dummies

Algoritmos y Programacion II Facultad de Ingenierıa

Page 584: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D –D D D –40, 254 177, 400 147, 256 –89, 376 95, 274 16, 382 –205, 217 42, 182 – –172, 179 176, 245 – –313 – – –

Cuadro 21: Fase 1

E1 E2 E3 S

D D D D

D D D D

40, 254 177, 400 147, 256 40, 147, 177, 254,256, 400

89, 376 95, 274 16, 382 16, 89, 95, 274, 376,382

E1 E2 S E3

205, 217 42, 182 – D

172, 179 176, 245 – D

313 – – 40, 147, 177, 254,256, 400

– – – 16, 89, 95, 274, 376,382

Cuadro 22: Fase 2

E1 E2 E3 S

D D D D

D D D D

40, 254 177, 400 147, 256 40, 147, 177, 254,256, 400

89, 376 95, 274 16, 382 16, 89, 95, 274, 376,382

E1 E2 S E3

205, 217 42, 182 42, 182, 205, 217 D

172, 179 176, 245 172, 176, 179, 245 D

E1 S E2 E3

313 – 42, 182, 205, 217 40, 147, 177, 254,256, 400

– – 172, 176, 179, 245 16, 89, 95, 274, 376,382

Cuadro 23: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 585: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.10 Merge Polifasico con particiones formadas de 4 elementos 57

E1 E2 E3 S

D D D D

D D D D

40, 254 177, 400 147, 256 40, 147, 177, 254,256, 400

89, 376 95, 274 16, 382 16, 89, 95, 274, 376,382

E1 E2 S E3

205, 217 42, 182 42, 182, 205, 217 D

172, 179 176, 245 172, 176, 179, 245 D

E1 S E2 E3

313 40, 42, 147, 177, 182,205, 217, 254, 256,313, 400

42, 182, 205, 217 40, 147, 177, 254,256, 400

S E1 E2 E3

– 40, 42, 147, 177, 182,205, 217, 254, 256,313, 400

172, 176, 179, 245 16, 89, 95, 274, 376,382

Cuadro 24: Fase 4

cuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.10. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {40, 177, 254, 400}; p2 = {89, 147, 256, 376}; p3 = {16, 95, 274, 382}; p4 ={42, 182, 205, 217}; p5 = {172, 176, 179, 245}; p6 = {313}.

3.10.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.10.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.11. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 586: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

D D D D

40, 254 177, 400 147, 256 40, 147, 177, 254,256, 400

89, 376 95, 274 16, 382 16, 89, 95, 274, 376,382

E1 E2 S E3

205, 217 42, 182 42, 182, 205, 217 D

172, 179 176, 245 172, 176, 179, 245 D

E1 S E2 E3

313 40, 42, 147, 177, 182,205, 217, 254, 256,313, 400

42, 182, 205, 217 40, 147, 177, 254,256, 400

S E1 E2 E3

16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

40, 42, 147, 177, 182,205, 217, 254, 256,313, 400

172, 176, 179, 245 16, 89, 95, 274, 376,382

E1 S E2 E3

16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

– – –

Cuadro 25: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 26: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 40, 177, 254 –147, 256, 400 89, 95, 376 16, 274, 382 –42, 205, 217 172, 179, 182 – –176, 245, 313 – – –

Cuadro 27: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 587: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D 40, 177, 254 40, 177, 254147, 256, 400 89, 95, 376 16, 274, 382 16, 89, 95, 147, 256,

274, 376, 382, 400

E1 E2 S E3

42, 205, 217 172, 179, 182 – 40, 177, 254176, 245, 313 – – 16, 89, 95, 147, 256,

274, 376, 382, 400

Cuadro 28: Fase 2

E1 E2 E3 S

D D 40, 177, 254 40, 177, 254147, 256, 400 89, 95, 376 16, 274, 382 16, 89, 95, 147, 256,

274, 376, 382, 400

E1 E2 S E3

42, 205, 217 172, 179, 182 40, 42, 172, 177, 179,182, 205, 217, 254

40, 177, 254

E1 S E2 E3

176, 245, 313 – 40, 42, 172, 177, 179,182, 205, 217, 254

16, 89, 95, 147, 256,274, 376, 382, 400

Cuadro 29: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 588: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 40, 177, 254 40, 177, 254147, 256, 400 89, 95, 376 16, 274, 382 16, 89, 95, 147, 256,

274, 376, 382, 400

E1 E2 S E3

42, 205, 217 172, 179, 182 40, 42, 172, 177, 179,182, 205, 217, 254

40, 177, 254

E1 S E2 E3

176, 245, 313 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

40, 42, 172, 177, 179,182, 205, 217, 254

16, 89, 95, 147, 256,274, 376, 382, 400

S E1 E2 E3

– 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

– –

Cuadro 30: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 31: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –40, 177, 254, 400 89, 147, 256, 376 16, 95, 274, 382 –42, 182, 205, 217 172, 176, 179, 245 – –313 – – –

Cuadro 32: Fase 1

Enrique P. Calot Algoritmos y Programacion II

Page 589: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 61

E1 E2 E3 S

D D D D

40, 177, 254, 400 89, 147, 256, 376 16, 95, 274, 382 16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

E1 E2 S E3

42, 182, 205, 217 172, 176, 179, 245 – D

313 – – 16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

Cuadro 33: Fase 2

E1 E2 E3 S

D D D D

40, 177, 254, 400 89, 147, 256, 376 16, 95, 274, 382 16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

E1 E2 S E3

42, 182, 205, 217 172, 176, 179, 245 42, 172, 176, 179,182, 205, 217, 245

D

E1 S E2 E3

313 – 42, 172, 176, 179,182, 205, 217, 245

16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

Cuadro 34: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 590: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

40, 177, 254, 400 89, 147, 256, 376 16, 95, 274, 382 16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

E1 E2 S E3

42, 182, 205, 217 172, 176, 179, 245 42, 172, 176, 179,182, 205, 217, 245

D

E1 S E2 E3

313 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

42, 172, 176, 179,182, 205, 217, 245

16, 40, 89, 95, 147,177, 254, 256, 274,376, 382, 400

S E1 E2 E3

– 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

– –

Cuadro 35: Fase final

3.11.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 591: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.12 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 63

b1 b2 Sale Entra

– – Nada 40

40 – Nada 254

40 254 40 177

177 254 177 400

400 254 254 256

400 256 256 147

400 147 400 376

376 147

Nueva particion! Se cierra la particion p1 = {40, 177, 254, 256, 400}147 89

376 89 376 95

95 89

Nueva particion! Se cierra la particion p2 = {147, 376}89 274

95 274 95 382

382 274 274 16

382 16 382 205

205 16

Nueva particion! Se cierra la particion p3 = {89, 95, 274, 382}16 217

205 217 205 42

42 217 217 182

42 182

Nueva particion! Se cierra la particion p4 = {16, 205, 217}42 179

179 182 179 172

172 182 182 245

172 245 245 176

172 176

Nueva particion! Se cierra la particion p5 = {42, 179, 182, 245}172 313

313 176 176 Nada

313 – 313 Nada

Finaliza la ultima particion en p6 = {172, 176, 313}

3.11.2. Salida final

p1 = {40, 177, 254, 256, 400};

p2 = {147, 376};

p3 = {89, 95, 274, 382};

p4 = {16, 205, 217};

p5 = {42, 179, 182, 245};

p6 = {172, 176, 313}.

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 592: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Seleccion Natural con buffers de tamano 2

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 36: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –40, 177, 254, 256, 400 147, 376 89, 95, 274, 382 –16, 205, 217 42, 179, 182, 245 – –172, 176, 313 – – –

Cuadro 37: Fase 1

3.12.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.12.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.13. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

40, 177, 254, 256, 400 147, 376 89, 95, 274, 382 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

E1 E2 S E3

16, 205, 217 42, 179, 182, 245 – D

172, 176, 313 – – 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

Cuadro 38: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 593: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 65

E1 E2 E3 S

D D D D

40, 177, 254, 256, 400 147, 376 89, 95, 274, 382 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

E1 E2 S E3

16, 205, 217 42, 179, 182, 245 16, 42, 179, 182, 205,217, 245

D

E1 S E2 E3

172, 176, 313 – 16, 42, 179, 182, 205,217, 245

40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

Cuadro 39: Fase 3

E1 E2 E3 S

D D D D

40, 177, 254, 256, 400 147, 376 89, 95, 274, 382 40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

E1 E2 S E3

16, 205, 217 42, 179, 182, 245 16, 42, 179, 182, 205,217, 245

D

E1 S E2 E3

172, 176, 313 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

16, 42, 179, 182, 205,217, 245

40, 89, 95, 147, 177,254, 256, 274, 376,382, 400

S E1 E2 E3

– 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

– –

Cuadro 40: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 594: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.13 Seleccion Natural con buffers de tamano 2

3.13.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 40

40 – – – Nada 254

40 254 – – 40 177

177 254 – – 177 400

400 254 – – 254 256

400 256 – – 256 147

400 – 147 – Nada 376

400 376 147 – 376 89

400 – 147 89 400 Nada

147 89 – –

Nueva particion! Se cierra la particion p1 = {40, 177, 254, 256, 376, 400}89 95

147 95 – – 95 274

147 274 – – 147 382

382 274 – – 274 16

382 – 16 – Nada 205

382 – 16 205 382 Nada

16 205 – –

Nueva particion! Se cierra la particion p2 = {89, 95, 147, 274, 382}16 217

217 205 – – 205 42

217 – 42 – Nada 182

217 – 42 182 217 Nada

42 182 – –

Nueva particion! Se cierra la particion p3 = {16, 205, 217}42 179

179 182 – – 179 172

– 182 172 – Nada 245

245 182 172 – 182 176

245 – 172 176 245 Nada

172 176 – –

Nueva particion! Se cierra la particion p4 = {42, 179, 182, 245}172 313

313 176 – – 176 Nada

313 – – – 313 Nada

Finaliza la ultima particion en p5 = {172, 176, 313}

3.13.2. Salida final

p1 = {40, 177, 254, 256, 376, 400};

p2 = {89, 95, 147, 274, 382};

p3 = {16, 205, 217};

p4 = {42, 179, 182, 245};

p5 = {172, 176, 313}.

Enrique P. Calot Algoritmos y Programacion II

Page 595: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 67

Fases c1 c2 c3∑3

i=1 ci < 50 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 41: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 16, 205, 217 –

42, 179, 182, 245 172, 176, 313 – –

Cuadro 42: Fase 1

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.14.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.14.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 5+ 0. Por lo tanto es necesario repartir 5 particiones de lascuales 0 son dummies (particiones vacıas) y 5 son mis particiones de entrada.

E1 E2 E3 S

40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 16, 205, 217 16, 40, 89, 95, 147,177, 205, 217, 254,256, 274, 376, 382,400

E1 E2 S E3

42, 179, 182, 245 172, 176, 313 – 16, 40, 89, 95, 147,177, 205, 217, 254,256, 274, 376, 382,400

Cuadro 43: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 596: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.15 Seleccion Natural con buffers de tamano 3

E1 E2 E3 S

40, 177, 254, 256,376, 400

89, 95, 147, 274, 382 16, 205, 217 16, 40, 89, 95, 147,177, 205, 217, 254,256, 274, 376, 382,400

E1 E2 S E3

42, 179, 182, 245 172, 176, 313 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

16, 40, 89, 95, 147,177, 205, 217, 254,256, 274, 376, 382,400

S E2 E1 E3

– – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 44: Fase final

3.15. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.15.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 597: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.16 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 69

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 40

40 – – – – – Nada 254

40 254 – – – – Nada 177

40 254 177 – – – 40 400

400 254 177 – – – 177 256

400 254 256 – – – 254 147

400 – 256 147 – – Nada 376

400 376 256 147 – – 256 89

400 376 – 147 89 – Nada 95

400 376 – 147 89 95 376 Nada

400 – – 147 89 95 400 Nada

147 89 95 – – –

Nueva particion! Se cierra la particion p1 = {40, 177, 254, 256, 376, 400}89 274

147 274 95 – – – 95 382

147 274 382 – – – 147 16

– 274 382 16 – – Nada 205

205 274 382 16 – – 205 217

217 274 382 16 – – 217 42

– 274 382 16 42 – Nada 182

– 274 382 16 42 182 274 Nada

– – 382 16 42 182 382 Nada

16 42 182 – – –

Nueva particion! Se cierra la particion p2 = {89, 95, 147, 205, 217, 274, 382}16 179

179 42 182 – – – 42 172

179 172 182 – – – 172 245

179 245 182 – – – 179 176

– 245 182 176 – – Nada 313

313 245 182 176 – – 182 Nada

313 245 – 176 – – 245 Nada

313 – – 176 – – 313 Nada

176 – – – – –

Nueva particion! Se cierra la particion p3 = {16, 42, 172, 179, 182, 245, 313}176 Nada

Finaliza la ultima particion en p4 = {176}

3.15.2. Salida final

p1 = {40, 177, 254, 256, 376, 400};

p2 = {89, 95, 147, 205, 217, 274, 382};

p3 = {16, 42, 172, 179, 182, 245, 313};

p4 = {176}.

3.16. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.16.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 598: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.17 Seleccion de reemplazo con buffer de tamano 4

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 45: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 205, 217,274, 382

16, 42, 172, 179, 182,245, 313

176 – –

Cuadro 46: Fase 1

3.16.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.17. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

3.17.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 205, 217,274, 382

40, 89, 95, 147, 177,205, 217, 254, 256,274, 376, 382, 400

E1 E2 S E3

16, 42, 172, 179, 182,245, 313

176 – 40, 89, 95, 147, 177,205, 217, 254, 256,274, 376, 382, 400

Cuadro 47: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 599: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Seleccion de reemplazo con buffer de tamano 4 71

E1 E2 E3 S

D 40, 177, 254, 256,376, 400

89, 95, 147, 205, 217,274, 382

40, 89, 95, 147, 177,205, 217, 254, 256,274, 376, 382, 400

E1 E2 S E3

16, 42, 172, 179, 182,245, 313

176 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

40, 89, 95, 147, 177,205, 217, 254, 256,274, 376, 382, 400

S E2 E1 E3

– – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 48: Fase final

b1 b2 b3 b4 Sale Entra

– – – – Nada 40

40 – – – Nada 254

40 254 – – Nada 177

40 254 177 – Nada 400

40 254 177 400 40 256

256 254 177 400 177 147

256 254 147 400 254 376

256 376 147 400 256 89

89 376 147 400 376 95

89 95 147 400 400 274

89 95 147 274

Nueva particion! Se cierra la particion p1 =

{40, 177, 254, 256, 376, 400}89 382

382 95 147 274 95 16

382 16 147 274 147 205

382 16 205 274 205 217

382 16 217 274 217 42

382 16 42 274 274 182

382 16 42 182 382 179

179 16 42 182

Nueva particion! Se cierra la particion p2 =

{89, 95, 147, 205, 217, 274, 382}16 172

179 172 42 182 42 245

179 172 245 182 172 176

179 176 245 182 176 313

179 313 245 182 179 Nada

– 313 245 182 182 Nada

– 313 245 – 245 Nada

– 313 – – 313 Nada

Finaliza la ultima particion en p3 =

{16, 42, 172, 176, 179, 182, 245, 313}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 600: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.18 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 49: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

40, 177, 254, 256,376, 400

89, 95, 147, 205, 217,274, 382

16, 42, 172, 176, 179,182, 245, 313

Cuadro 50: Fase 1

3.17.2. Salida final

p1 = {40, 177, 254, 256, 376, 400};

p2 = {89, 95, 147, 205, 217, 274, 382};

p3 = {16, 42, 172, 176, 179, 182, 245, 313}.

3.18. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.18.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.18.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.19. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

3.19.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 601: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Seleccion Natural con buffers de tamano 4 73

E1 E2 E3 S

40, 177, 254, 256,376, 400

89, 95, 147, 205, 217,274, 382

16, 42, 172, 176, 179,182, 245, 313

16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 51: Fase final

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 40

40 – – – – – – – Nada 254

40 254 – – – – – – Nada 177

40 254 177 – – – – – Nada 400

40 254 177 400 – – – – 40 256

256 254 177 400 – – – – 177 147

256 254 – 400 147 – – – Nada 376

256 254 376 400 147 – – – 254 89

256 – 376 400 147 89 – – Nada 95

256 – 376 400 147 89 95 – Nada 274

256 274 376 400 147 89 95 – 256 382

382 274 376 400 147 89 95 – 274 16

382 – 376 400 147 89 95 16 376 Nada

382 – – 400 147 89 95 16 382 Nada

– – – 400 147 89 95 16 400 Nada

147 89 95 16 – – – –

Nueva particion! Se cierra la particion p1 = {40, 177, 254, 256, 274, 376, 382, 400}16 205

147 89 95 205 – – – – 89 217

147 217 95 205 – – – – 95 42

147 217 – 205 42 – – – Nada 182

147 217 182 205 42 – – – 147 179

179 217 182 205 42 – – – 179 172

– 217 182 205 42 172 – – Nada 245

245 217 182 205 42 172 – – 182 176

245 217 – 205 42 172 176 – Nada 313

245 217 313 205 42 172 176 – 205 Nada

245 217 313 – 42 172 176 – 217 Nada

245 – 313 – 42 172 176 – 245 Nada

– – 313 – 42 172 176 – 313 Nada

42 172 176 – – – – –

Nueva particion! Se cierra la particion p2 = {16, 89, 95, 147, 179, 182, 205, 217, 245, 313}42 Nada

– 172 176 – – – – – 172 Nada

– – 176 – – – – – 176 Nada

Finaliza la ultima particion en p3 = {42, 172, 176}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 602: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.20 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

40, 177, 254, 256,274, 376, 382, 400

16, 89, 95, 147, 179,182, 205, 217, 245,313

42, 172, 176 –

Cuadro 53: Fase 1

3.19.2. Salida final

p1 = {40, 177, 254, 256, 274, 376, 382, 400};

p2 = {16, 89, 95, 147, 179, 182, 205, 217, 245, 313};

p3 = {42, 172, 176}.

3.20. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.20.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.20.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.21. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.21.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 603: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.21 Seleccion de reemplazo con buffer de tamano 5 75

E1 E2 E3 S

40, 177, 254, 256,274, 376, 382, 400

16, 89, 95, 147, 179,182, 205, 217, 245,313

42, 172, 176 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 54: Fase final

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 40

40 – – – – Nada 254

40 254 – – – Nada 177

40 254 177 – – Nada 400

40 254 177 400 – Nada 256

40 254 177 400 256 40 147

147 254 177 400 256 147 376

376 254 177 400 256 177 89

376 254 89 400 256 254 95

376 95 89 400 256 256 274

376 95 89 400 274 274 382

376 95 89 400 382 376 16

16 95 89 400 382 382 205

16 95 89 400 205 400 217

16 95 89 217 205

Nueva particion! Se cierra la particion p1 =

{40, 147, 177, 254, 256, 274, 376, 382, 400}16 42

42 95 89 217 205 42 182

182 95 89 217 205 89 179

182 95 179 217 205 95 172

182 172 179 217 205 172 245

182 245 179 217 205 179 176

182 245 176 217 205 182 313

313 245 176 217 205 205 Nada

313 245 176 217 – 217 Nada

313 245 176 – – 245 Nada

313 – 176 – – 313 Nada

– – 176 – –

Nueva particion! Se cierra la particion p2 =

{16, 42, 89, 95, 172, 179, 182, 205, 217, 245, 313}176 Nada

Finaliza la ultima particion en p3 = {176}

3.21.2. Salida final

p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400};

p2 = {16, 42, 89, 95, 172, 179, 182, 205, 217, 245, 313};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 604: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.22 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,179, 182, 205, 217,245, 313

176 –

Cuadro 56: Fase 1

p3 = {176}.

3.22. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.22.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.22.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.23. Seleccion Natural con buffers de tamano 5

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

3.23.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 605: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.23 Seleccion Natural con buffers de tamano 5 77

E1 E2 E3 S

40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,179, 182, 205, 217,245, 313

176 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 57: Fase final

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 40

40 – – – – – – – – – Nada 254

40 254 – – – – – – – – Nada 177

40 254 177 – – – – – – – Nada 400

40 254 177 400 – – – – – – Nada 256

40 254 177 400 256 – – – – – 40 147

147 254 177 400 256 – – – – – 147 376

376 254 177 400 256 – – – – – 177 89

376 254 – 400 256 89 – – – – Nada 95

376 254 – 400 256 89 95 – – – Nada 274

376 254 274 400 256 89 95 – – – 254 382

376 382 274 400 256 89 95 – – – 256 16

376 382 274 400 – 89 95 16 – – Nada 205

376 382 274 400 – 89 95 16 205 – Nada 217

376 382 274 400 – 89 95 16 205 217 274 Nada

376 382 – 400 – 89 95 16 205 217 376 Nada

– 382 – 400 – 89 95 16 205 217 382 Nada

– – – 400 – 89 95 16 205 217 400 Nada

89 95 16 205 217 – – – – –

Nueva particion! Se cierra la particion p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400}16 42

89 95 42 205 217 – – – – – 42 182

89 95 182 205 217 – – – – – 89 179

179 95 182 205 217 – – – – – 95 172

179 172 182 205 217 – – – – – 172 245

179 245 182 205 217 – – – – – 179 176

– 245 182 205 217 176 – – – – Nada 313

313 245 182 205 217 176 – – – – 182 Nada

313 245 – 205 217 176 – – – – 205 Nada

313 245 – – 217 176 – – – – 217 Nada

313 245 – – – 176 – – – – 245 Nada

313 – – – – 176 – – – – 313 Nada

176 – – – – – – – – –

Nueva particion! Se cierra la particion p2 = {16, 42, 89, 95, 172, 179, 182, 205, 217, 245, 313}176 Nada

Finaliza la ultima particion en p3 = {176}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 606: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.24 Merge Polifasico de las salidas por seleccion natural de buffers tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 58: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,179, 182, 205, 217,245, 313

176 –

Cuadro 59: Fase 1

3.23.2. Salida final

p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400};

p2 = {16, 42, 89, 95, 172, 179, 182, 205, 217, 245, 313};

p3 = {176}.

3.24. Merge Polifasico de las salidas por seleccion natural de buffers tamano

5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.24.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.24.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.25. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.25.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 607: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.25 Seleccion de reemplazo con buffer de tamano 6 79

E1 E2 E3 S

40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,179, 182, 205, 217,245, 313

176 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 60: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 40

40 – – – – – Nada 254

40 254 – – – – Nada 177

40 254 177 – – – Nada 400

40 254 177 400 – – Nada 256

40 254 177 400 256 – Nada 147

40 254 177 400 256 147 40 376

376 254 177 400 256 147 147 89

376 254 177 400 256 89 177 95

376 254 95 400 256 89 254 274

376 274 95 400 256 89 256 382

376 274 95 400 382 89 274 16

376 16 95 400 382 89 376 205

205 16 95 400 382 89 382 217

205 16 95 400 217 89 400 42

205 16 95 42 217 89

Nueva particion! Se cierra la particion p1 =

{40, 147, 177, 254, 256, 274, 376, 382, 400}16 182

205 182 95 42 217 89 42 179

205 182 95 179 217 89 89 172

205 182 95 179 217 172 95 245

205 182 245 179 217 172 172 176

205 182 245 179 217 176 176 313

205 182 245 179 217 313 179 Nada

205 182 245 – 217 313 182 Nada

205 – 245 – 217 313 205 Nada

– – 245 – 217 313 217 Nada

– – 245 – – 313 245 Nada

– – – – – 313 313 Nada

Finaliza la ultima particion en p2 =

{16, 42, 89, 95, 172, 176, 179, 182, 205, 217, 245, 313}

3.25.2. Salida final

p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400};

p2 = {16, 42, 89, 95, 172, 176, 179, 182, 205, 217, 245, 313}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 608: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.26 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 61: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,176, 179, 182, 205,217, 245, 313

Cuadro 62: Fase 1

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.26.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.26.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.27. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.27.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 609: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.27 Seleccion Natural con buffers de tamano 6 81

E1 E2 E3 S

D 40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,176, 179, 182, 205,217, 245, 313

16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 63: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 40

40 – – – – – – – – – – – Nada 254

40 254 – – – – – – – – – – Nada 177

40 254 177 – – – – – – – – – Nada 400

40 254 177 400 – – – – – – – – Nada 256

40 254 177 400 256 – – – – – – – Nada 147

40 254 177 400 256 147 – – – – – – 40 376

376 254 177 400 256 147 – – – – – – 147 89

376 254 177 400 256 – 89 – – – – – Nada 95

376 254 177 400 256 – 89 95 – – – – Nada 274

376 254 177 400 256 274 89 95 – – – – 177 382

376 254 382 400 256 274 89 95 – – – – 254 16

376 – 382 400 256 274 89 95 16 – – – Nada 205

376 – 382 400 256 274 89 95 16 205 – – Nada 217

376 – 382 400 256 274 89 95 16 205 217 – Nada 42

376 – 382 400 256 274 89 95 16 205 217 42 256 Nada

376 – 382 400 – 274 89 95 16 205 217 42 274 Nada

376 – 382 400 – – 89 95 16 205 217 42 376 Nada

– – 382 400 – – 89 95 16 205 217 42 382 Nada

– – – 400 – – 89 95 16 205 217 42 400 Nada

89 95 16 205 217 42 – – – – – –

Nueva particion! Se cierra la particion p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400}16 182

89 95 182 205 217 42 – – – – – – 42 179

89 95 182 205 217 179 – – – – – – 89 172

172 95 182 205 217 179 – – – – – – 95 245

172 245 182 205 217 179 – – – – – – 172 176

176 245 182 205 217 179 – – – – – – 176 313

313 245 182 205 217 179 – – – – – – 179 Nada

313 245 182 205 217 – – – – – – – 182 Nada

313 245 – 205 217 – – – – – – – 205 Nada

313 245 – – 217 – – – – – – – 217 Nada

313 245 – – – – – – – – – – 245 Nada

313 – – – – – – – – – – – 313 Nada

Finaliza la ultima particion en p2 = {16, 42, 89, 95, 172, 176, 179, 182, 205, 217, 245, 313}

3.27.2. Salida final

p1 = {40, 147, 177, 254, 256, 274, 376, 382, 400};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 610: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.28 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 64: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,176, 179, 182, 205,217, 245, 313

Cuadro 65: Fase 1

p2 = {16, 42, 89, 95, 172, 176, 179, 182, 205, 217, 245, 313}.

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.28.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.28.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 611: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.29 Bubble Sort ascendente 83

E1 E2 E3 S

D 40, 147, 177, 254,256, 274, 376, 382,400

16, 42, 89, 95, 172,176, 179, 182, 205,217, 245, 313

16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

S E2 E3 E1

– – – 16, 40, 42, 89, 95,147, 172, 176, 177,179, 182, 205, 217,245, 254, 256, 274,313, 376, 382, 400

Cuadro 66: Fase final

3.29. Bubble Sort ascendente

3.29.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 18/20

1 40 177 254 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 400 14/19

2 40 177 254 147 256 89 95 274 376 16 205 217 42 182 179 172 245 176 313 382 400 13/18

3 40 177 147 254 89 95 256 274 16 205 217 42 182 179 172 245 176 313 376 382 400 12/17

4 40 147 177 89 95 254 256 16 205 217 42 182 179 172 245 176 274 313 376 382 400 11/16

5 40 147 89 95 177 254 16 205 217 42 182 179 172 245 176 256 274 313 376 382 400 11/15

6 40 89 95 147 177 16 205 217 42 182 179 172 245 176 254 256 274 313 376 382 400 6/14

7 40 89 95 147 16 177 205 42 182 179 172 217 176 245 254 256 274 313 376 382 400 6/13

8 40 89 95 16 147 177 42 182 179 172 205 176 217 245 254 256 274 313 376 382 400 5/12

9 40 89 16 95 147 42 177 179 172 182 176 205 217 245 254 256 274 313 376 382 400 4/11

10 40 16 89 95 42 147 177 172 179 176 182 205 217 245 254 256 274 313 376 382 400 4/10

11 16 40 89 42 95 147 172 177 176 179 182 205 217 245 254 256 274 313 376 382 400 2/9

12 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/8

13 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/7

14 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/6

15 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/5

16 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/4

17 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/3

18 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/2

19 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/1

20 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 612: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.30 Bubble Sort descendente

3.30. Bubble Sort descendente

3.30.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 19/20

1 254 177 400 256 147 376 89 95 274 382 40 205 217 42 182 179 172 245 176 313 16 15/19

2 254 400 256 177 376 147 95 274 382 89 205 217 42 182 179 172 245 176 313 40 16 13/18

3 400 256 254 376 177 147 274 382 95 205 217 89 182 179 172 245 176 313 42 40 16 11/17

4 400 256 376 254 177 274 382 147 205 217 95 182 179 172 245 176 313 89 42 40 16 11/16

5 400 376 256 254 274 382 177 205 217 147 182 179 172 245 176 313 95 89 42 40 16 10/15

6 400 376 256 274 382 254 205 217 177 182 179 172 245 176 313 147 95 89 42 40 16 8/14

7 400 376 274 382 256 254 217 205 182 179 177 245 176 313 172 147 95 89 42 40 16 3/13

8 400 376 382 274 256 254 217 205 182 179 245 177 313 176 172 147 95 89 42 40 16 3/12

9 400 382 376 274 256 254 217 205 182 245 179 313 177 176 172 147 95 89 42 40 16 2/11

10 400 382 376 274 256 254 217 205 245 182 313 179 177 176 172 147 95 89 42 40 16 2/10

11 400 382 376 274 256 254 217 245 205 313 182 179 177 176 172 147 95 89 42 40 16 2/9

12 400 382 376 274 256 254 245 217 313 205 182 179 177 176 172 147 95 89 42 40 16 1/8

13 400 382 376 274 256 254 245 313 217 205 182 179 177 176 172 147 95 89 42 40 16 1/7

14 400 382 376 274 256 254 313 245 217 205 182 179 177 176 172 147 95 89 42 40 16 1/6

15 400 382 376 274 256 313 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 1/5

16 400 382 376 274 313 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 1/4

17 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/3

18 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/2

19 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/1

20 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 613: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.31 Bilateral Bubble Sort ascendente 85

3.31. Bilateral Bubble Sort ascendente

3.31.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 18/20

1 40 177 254 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 400 15/20

2 16 40 177 254 256 147 376 89 95 274 382 42 205 217 172 182 179 176 245 313 400 13/18

3 16 40 177 254 147 256 89 95 274 376 42 205 217 172 182 179 176 245 313 382 400 12/18

4 16 40 42 177 254 147 256 89 95 274 376 172 205 217 176 182 179 245 313 382 400 11/16

5 16 40 42 177 147 254 89 95 256 274 172 205 217 176 182 179 245 313 376 382 400 8/16

6 16 40 42 89 177 147 254 95 172 256 274 176 205 217 179 182 245 313 376 382 400 9/14

7 16 40 42 89 147 177 95 172 254 256 176 205 217 179 182 245 274 313 376 382 400 6/14

8 16 40 42 89 95 147 177 172 176 254 256 179 205 217 182 245 274 313 376 382 400 7/12

9 16 40 42 89 95 147 172 176 177 254 179 205 217 182 245 256 274 313 376 382 400 3/12

10 16 40 42 89 95 147 172 176 177 179 254 182 205 217 245 256 274 313 376 382 400 4/10

11 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/10

12 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/8

13 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/8

14 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/6

15 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/6

16 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/4

17 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/4

18 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/2

19 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/2

20 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 614: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.32 Bilateral Bubble Sort descendente

3.32. Bilateral Bubble Sort descendente

3.32.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 19/20

1 254 177 400 256 147 376 89 95 274 382 40 205 217 42 182 179 172 245 176 313 16 17/20

2 400 254 177 382 256 147 376 89 95 274 313 40 205 217 42 182 179 172 245 176 16 14/18

3 400 254 382 256 177 376 147 95 274 313 89 205 217 42 182 179 172 245 176 40 16 13/18

4 400 382 254 376 256 177 313 147 95 274 245 89 205 217 42 182 179 172 176 40 16 11/16

5 400 382 376 256 254 313 177 147 274 245 95 205 217 89 182 179 172 176 42 40 16 8/16

6 400 382 376 313 256 254 274 177 147 245 217 95 205 182 89 179 176 172 42 40 16 8/14

7 400 382 376 313 256 274 254 177 245 217 147 205 182 95 179 176 172 89 42 40 16 4/14

8 400 382 376 313 274 256 254 245 177 217 205 147 182 179 95 176 172 89 42 40 16 6/12

9 400 382 376 313 274 256 254 245 217 205 177 182 179 147 176 172 95 89 42 40 16 2/12

10 400 382 376 313 274 256 254 245 217 205 182 177 179 176 147 172 95 89 42 40 16 2/10

11 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/10

12 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/8

13 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/8

14 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/6

15 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/6

16 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/4

17 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/4

18 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/2

19 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/2

20 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 615: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.33 Selection Sort ascendente 87

3.33. Selection Sort ascendente

3.33.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 1/20

1 16 254 177 400 256 147 376 89 95 274 382 40 205 217 42 182 179 172 245 176 313 1/19

2 16 40 177 400 256 147 376 89 95 274 382 254 205 217 42 182 179 172 245 176 313 1/18

3 16 40 42 400 256 147 376 89 95 274 382 254 205 217 177 182 179 172 245 176 313 1/17

4 16 40 42 89 256 147 376 400 95 274 382 254 205 217 177 182 179 172 245 176 313 1/16

5 16 40 42 89 95 147 376 400 256 274 382 254 205 217 177 182 179 172 245 176 313 1/15

6 16 40 42 89 95 147 376 400 256 274 382 254 205 217 177 182 179 172 245 176 313 1/14

7 16 40 42 89 95 147 172 400 256 274 382 254 205 217 177 182 179 376 245 176 313 1/13

8 16 40 42 89 95 147 172 176 256 274 382 254 205 217 177 182 179 376 245 400 313 1/12

9 16 40 42 89 95 147 172 176 177 274 382 254 205 217 256 182 179 376 245 400 313 1/11

10 16 40 42 89 95 147 172 176 177 179 382 254 205 217 256 182 274 376 245 400 313 1/10

11 16 40 42 89 95 147 172 176 177 179 182 254 205 217 256 382 274 376 245 400 313 1/9

12 16 40 42 89 95 147 172 176 177 179 182 205 254 217 256 382 274 376 245 400 313 1/8

13 16 40 42 89 95 147 172 176 177 179 182 205 217 254 256 382 274 376 245 400 313 1/7

14 16 40 42 89 95 147 172 176 177 179 182 205 217 245 256 382 274 376 254 400 313 1/6

15 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 382 274 376 256 400 313 1/5

16 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 376 382 400 313 1/4

17 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 376 382 400 313 1/3

18 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 382 400 376 1/2

19 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 400 382 1/1

20 16 40 42 89 95 147 172 176 177 179 182 205 217 245 254 256 274 313 376 382 400 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 616: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

88 3.34 Selection Sort descendente

3.34. Selection Sort descendente

3.34.1. Desarrollo

0 40 254 177 400 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 1/20

1 400 254 177 40 256 147 376 89 95 274 382 16 205 217 42 182 179 172 245 176 313 1/19

2 400 382 177 40 256 147 376 89 95 274 254 16 205 217 42 182 179 172 245 176 313 1/18

3 400 382 376 40 256 147 177 89 95 274 254 16 205 217 42 182 179 172 245 176 313 1/17

4 400 382 376 313 256 147 177 89 95 274 254 16 205 217 42 182 179 172 245 176 40 1/16

5 400 382 376 313 274 147 177 89 95 256 254 16 205 217 42 182 179 172 245 176 40 1/15

6 400 382 376 313 274 256 177 89 95 147 254 16 205 217 42 182 179 172 245 176 40 1/14

7 400 382 376 313 274 256 254 89 95 147 177 16 205 217 42 182 179 172 245 176 40 1/13

8 400 382 376 313 274 256 254 245 95 147 177 16 205 217 42 182 179 172 89 176 40 1/12

9 400 382 376 313 274 256 254 245 217 147 177 16 205 95 42 182 179 172 89 176 40 1/11

10 400 382 376 313 274 256 254 245 217 205 177 16 147 95 42 182 179 172 89 176 40 1/10

11 400 382 376 313 274 256 254 245 217 205 182 16 147 95 42 177 179 172 89 176 40 1/9

12 400 382 376 313 274 256 254 245 217 205 182 179 147 95 42 177 16 172 89 176 40 1/8

13 400 382 376 313 274 256 254 245 217 205 182 179 177 95 42 147 16 172 89 176 40 1/7

14 400 382 376 313 274 256 254 245 217 205 182 179 177 176 42 147 16 172 89 95 40 1/6

15 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 16 42 89 95 40 1/5

16 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 16 42 89 95 40 1/4

17 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 42 89 16 40 1/3

18 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 16 40 1/2

19 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 16 40 1/1

20 400 382 376 313 274 256 254 245 217 205 182 179 177 176 172 147 95 89 42 40 16 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 617: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-12-13

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

40, 254, 177, 400, 256†, 147, 376, 89†, 95†, 274, 382†, 16, 205, 217, 42, 182†, 179,

172†, 245, 176, 313†

Se pide:

a. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones ordenadastomadas del lote de datos.

b. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown), Quick Sort(hasta haber completado dos niveles de recursividad) y Radix Sort en orden ascendente (entero).

c. Un software recibe como entrada un arreglo completo semi-ordenado de p elementos de tipo tElem, se sabeque solo hay tres elementos fuera de su lugar (no se sabe cuales), el software es ejecutado en una maquinacon una memoria interna comparable a 2p2 × sizeof(tElem). Dispone de las siguientes soluciones:

a) Sort externo: seleccion de reemplazo (se asume M ≥ 3) y merge polifasico

b) Sort externo: seleccion natural (se asume M ≥ 3) y merge polifasico

c) Sort externo: quick sort de pivoteo en el primer elemento sobre particiones de p

2elementos y merge

polifasico

d) Sort interno: quick sort de pivoteo en el primer elemento

e) Sort interno: quick sort de pivoteo en el ultimo elemento

f ) Sort interno: bubble sort bilateral (recorre en ambos sentidos y tiene un flag para cortar si no hayintercambios)

g) Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap el padrees mayor a los hijos)

h) Sort interno: heap sort (se asume que el orden es ascendente y en todos los nodos del heap el padrees menor a los hijos)

i) Sort interno: selection sort

¿cual de todas implementarıa? Justifique su eleccion.

d. Procesar el B-tree de m = 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

205, 182†, 245†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

e. Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

Page 618: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Resolucion Teorica Oficial de la Evaluacion Integradora tomada

el 20 de Diciembre de 2010

Enrique P. Calot*

Catedra de Algoritmos y Programacion II

Facultad de Ingenierıa

Universidad de Buenos Aires

2010-12-20

*[email protected]

Page 619: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2 INDICE

Indice

1. Enunciado 5

2. Resolucion estricta 5

2.1. a. Pregunta teorica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.1. Respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. b. Ejercicio de B-trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2. Eliminacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. c. Seleccion Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4. d. Radix Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5. d. Quick Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6. d. Heap Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.7. e. Merge Polifasico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 122.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3. Resolucion explayada 14

3.1. Radix Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.1.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2. Quick Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3. Heap Sort completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.4. Heap Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4.1. Arbol inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.5. Merge Polifasico de las salidas por seleccion natural . . . . . . . . . . . . . . . . . . . . . 473.5.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.5.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6. Merge Polifasico de las particiones marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . 473.6.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 473.6.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.7. Merge Polifasico completo con particiones formadas de 1 elemento . . . . . . . . . . . . . 493.7.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 493.7.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.8. Merge Polifasico con particiones formadas de 2 elementos . . . . . . . . . . . . . . . . . . 493.8.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 513.8.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.9. Merge Polifasico con particiones formadas de 3 elementos . . . . . . . . . . . . . . . . . . 513.9.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 513.9.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.10. Merge Polifasico con particiones formadas de 4 elementos . . . . . . . . . . . . . . . . . . 563.10.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 56

Enrique P. Calot Algoritmos y Programacion II

Page 620: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

INDICE 3

3.10.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.11. Seleccion de reemplazo con buffer de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . 56

3.11.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.11.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2 . . . . . . . 623.12.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 633.12.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.13. Seleccion Natural con buffers de tamano 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.13.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.13.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 . . . . . . . . . . 663.14.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 663.14.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.15. Seleccion de reemplazo con buffer de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . 683.15.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.15.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 3 . . . . . . . 683.16.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 693.16.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.17. Seleccion Natural con buffers de tamano 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.17.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.17.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 . . . . . . . . . . 713.18.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 713.18.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.19. Seleccion de reemplazo con buffer de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . 723.19.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.19.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4 . . . . . . . 743.20.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 743.20.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.21. Seleccion Natural con buffers de tamano 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.21.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.21.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano 4 . . . . . . . . . . 763.22.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 763.22.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.23. Seleccion de reemplazo con buffer de tamano 5 . . . . . . . . . . . . . . . . . . . . . . . . 763.23.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.23.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.24. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5 . . . . . . . 783.24.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 783.24.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.25. Seleccion de reemplazo con buffer de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . 783.25.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.25.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6 . . . . . . . 803.26.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 803.26.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Algoritmos y Programacion II Facultad de Ingenierıa

Page 621: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

4 INDICE

3.27. Seleccion Natural con buffers de tamano 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.27.2. Salida final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano 6 . . . . . . . . . . 823.28.1. Calculo de la distribucion de columnas y dummies . . . . . . . . . . . . . . . . . . 823.28.2. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.29. Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.29.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.30. Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.30.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.31. Bilateral Bubble Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.31.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.32. Bilateral Bubble Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863.32.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.33. Selection Sort ascendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.33.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.34. Selection Sort descendente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883.34.1. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Enrique P. Calot Algoritmos y Programacion II

Page 622: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

1 Enunciado 5

1. Enunciado

Dado el siguiente lote de datos:

285, 38, 305, 220, 382†, 160, 71, 374†, 75†, 330, 376†, 246, 28, 256, 47,

273†, 236, 183†, 277, 190, 331†

Se pide:

a. ¿Que es lo que garantiza que una vez congelado un pivote tras una iteracion de Quick Sort este quedeen su posicion final pese a que el resto de los elementos pueden estar completamente desordenados?

b. Procesar el B-tree de orden 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

256, 246†, 277†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

d. Desarrollar los algoritmos de Radix Sort en orden ascendente (entero), Heap Sort en orden ascen-dente (hacer al menos 1 swapdown) y Quick Sort (hasta haber completado dos niveles de recursivi-dad).

e. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

2. Resolucion estricta

El objetivo de este apunte es resolver los ejercicios para proveer al alumno de una explicacion concep-tual sobre como funcionan los algoritmos. Se recomienda no mecanizar las respuestas si no se entiendesu funcionamiento, ya que en ciertos casos particulares existen excepciones a la regla, es por esto que sibien se presentan estos ejemplo no es para que se responda el examen por analogıa, sino para permitirleal alumno inducir las reglas con las cuales los algoritmos se manejan.

Las resoluciones presentadas a continuacion estan desarrolladas a modo de explicacion y sin escatimarespacio ni tiempo de escritura, en los examenes, las respuestas pueden ser mas sinteticas, evitando escribirmuchas veces un arbol o las tablas enteras de Quick Sort, seleccion natural o de reemplazo por ejemplo.Cada algoritmo tiene su metodo de abreviacion, pero escapa de los alcances de este apunte explicarlos.Es por esta razon que este resuelto tiene una extension mucho mayor que la que puede llegar a tener unarespuesta de examen.

La resolucion estricta es una explicacion del algoritmo cortando en los puntos donde el enunciado loexplicita. En casos de dudas, mas adelante se encuentra la resolucion explayada, que continua algunosejercicios por mas de lo especificado en el enunciado y resuelve otros algoritmos similares con el mismolote de datos para permitir al alumno efectuar comparaciones.

2.1. a. Pregunta teorica

¿Que es lo que garantiza que una vez congelado un pivote tras una iteracion de Quick Sort este quedeen su posicion final pese a que el resto de los elementos pueden estar completamente desordenados?

Algoritmos y Programacion II Facultad de Ingenierıa

Page 623: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

6 2.2 b. Ejercicio de B-trees

2.1.1. Respuesta

Lo que da esa garantıa es que luego del procedimiento de intercambios, todos los menores quedan deun lado y los mayores quedan del otro, lo cual es la definicion de ordenamiento.

2.2. b. Ejercicio de B-trees

Procesar el B-tree de orden 2 resultante de ingresar los elementos del lote en el orden dado y luegoeliminar los siguientes:

256, 246†, 277†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

2.2.1. Insercion

•285•

×38×220× ×305×382×

Insercion de 5 elementos: 285, 38, 305, 220, 382

•285•

×38×71×160×220× ×305×374×382×

Insercion de 3 elementos: 160, 71, 374

•75•285•

×38×71× ×160×220× ×305×374×382×

Insercion de 1 elemento: 75

•75•285•374•

×38×71× ×160×220× ×305×330× ×376×382×

Insercion de 2 elementos: 330, 376

•75•246•285•374•

×28×38×47×71× ×160×220× ×256×273× ×305×330× ×376×382×

Insercion de 5 elementos: 246, 28, 256, 47, 273

•75•246•285•374•

×28×38×47×71× ×160×183×220×236× ×256×273× ×305×330× ×376×382×

Insercion de 2 elementos: 236, 183

•246•

•75•190• •285•374•

×28×38×47×71× ×160×183× ×220×236× ×256×273×277× ×305×330×331× ×376×382×

Insercion de 3 elementos: 277, 190, 331

Enrique P. Calot Algoritmos y Programacion II

Page 624: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.3 c. Seleccion Natural 7

2.2.2. Eliminacion

•75•190•285•374•

×28×38×47×71× ×160×183× ×220×236×273×277× ×305×330×331× ×376×382×

Eliminacion de 2 elementos: 256, 246

•75•190•285•374•

×28×38×47×71× ×160×183× ×220×236×273× ×305×330×331× ×376×382×

Eliminacion de 1 elemento: 277

2.3. c. Seleccion Natural

Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

2.3.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 625: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

8 2.4 d. Radix Sort

b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 Sale Entra

– – – – – – – – – – Nada 285

285 – – – – – – – – – Nada 38

285 38 – – – – – – – – Nada 305

285 38 305 – – – – – – – Nada 220

285 38 305 220 – – – – – – Nada 382

285 38 305 220 382 – – – – – 38 160

285 160 305 220 382 – – – – – 160 71

285 – 305 220 382 71 – – – – Nada 374

285 374 305 220 382 71 – – – – 220 75

285 374 305 – 382 71 75 – – – Nada 330

285 374 305 330 382 71 75 – – – 285 376

376 374 305 330 382 71 75 – – – 305 246

376 374 – 330 382 71 75 246 – – Nada 28

376 374 – 330 382 71 75 246 28 – Nada 256

376 374 – 330 382 71 75 246 28 256 330 Nada

376 374 – – 382 71 75 246 28 256 374 Nada

376 – – – 382 71 75 246 28 256 376 Nada

– – – – 382 71 75 246 28 256 382 Nada

71 75 246 28 256 – – – – –

Nueva particion! Se cierra la particion p1 = {38, 160, 220, 285, 305, 330, 374, 376, 382}28 47

71 75 246 47 256 – – – – – 47 273

71 75 246 273 256 – – – – – 71 236

236 75 246 273 256 – – – – – 75 183

236 183 246 273 256 – – – – – 183 277

236 277 246 273 256 – – – – – 236 190

– 277 246 273 256 190 – – – – Nada 331

331 277 246 273 256 190 – – – – 246 Nada

331 277 – 273 256 190 – – – – 256 Nada

331 277 – 273 – 190 – – – – 273 Nada

331 277 – – – 190 – – – – 277 Nada

331 – – – – 190 – – – – 331 Nada

190 – – – – – – – – –

Nueva particion! Se cierra la particion p2 = {28, 47, 71, 75, 183, 236, 246, 256, 273, 277, 331}190 Nada

Finaliza la ultima particion en p3 = {190}

2.3.2. Salida final

p1 = {38, 160, 220, 285, 305, 330, 374, 376, 382};

p2 = {28, 47, 71, 75, 183, 236, 246, 256, 273, 277, 331};

p3 = {190}.

2.4. d. Radix Sort

Desarrollar el algoritmo de Radix Sort en orden ascendente (entero).

2.4.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Ascendente.

Enrique P. Calot Algoritmos y Programacion II

Page 626: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.5 d. Quick Sort 9

Paso 0 Paso 1 Paso 2 Paso 3285 220 305 028038 160 220 038305 330 028 047220 190 330 071382 071 331 075160 331 236 160071 382 038 183374 273 246 190075 183 047 220330 374 256 236376 285 160 246246 305 071 256028 075 273 273256 376 374 277047 246 075 285273 256 376 305236 236 277 330183 047 382 331277 277 183 374190 038 285 376331 028 190 382

2.5. d. Quick Sort

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

2.5.1. Desarrollo

Paso 1 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Paso 2 47 38 190 220 277 160 71 183 75 236 273 246 28 256 285 376 330 374 382 305 331

Paso 3 28 38 47 220 277 160 71 183 75 236 273 246 190 256 305 330 374 331 376 382

Final 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

2.6. d. Heap Sort

Desarrollar el algoritmo de Heap Sort en orden ascendente (hacer al menos 1 swapdown).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 627: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

10 2.6 d. Heap Sort

2.6.1. Arbol inicial

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Arbol inicial y su vector asociadoHeapfy paso 0

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Heapfy paso 1

285

38 305

220 382 160 71

374 277 331 376 246 28 256 47

273 236 183 75 190 330

Vector:

285 38 305 220 382 160 71 374 277 331 376 246 28 256 47 273 236 183 75 190 330

Enrique P. Calot Algoritmos y Programacion II

Page 628: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.6 d. Heap Sort 11

Heapfy paso 2

285

38 305

374 382 246 256

273 277 331 376 160 28 71 47

220 236 183 75 190 330

Vector:

285 38 305 374 382 246 256 273 277 331 376 160 28 71 47 220 236 183 75 190 330

Heapfy paso 3

285

382 305

374 376 246 256

273 277 331 38 160 28 71 47

220 236 183 75 190 330

Vector:

285 382 305 374 376 246 256 273 277 331 38 160 28 71 47 220 236 183 75 190 330

Heapfy paso 4

382

376 305

374 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 190 285

Vector:

382 376 305 374 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 190 285

Algoritmos y Programacion II Facultad de Ingenierıa

Page 629: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

12 2.7 e. Merge Polifasico

285

376 305

374 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 190 382

Vector:

285 376 305 374 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 190 382

Paso 1: ultimo congelado pedido antes del corte

2.7. e. Merge Polifasico

Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones orde-nadas tomadas del lote de datos.

2.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

2.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 1: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 630: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

2.7 e. Merge Polifasico 13

E1 E2 E3 S

D D D –D D D –D D D –D 285 38 –305 220 382 –160 71 374 –75 330 376 –246 28 – –256 47 – –273 236 – –183 277 – –190 – – –331 – – –

Cuadro 2: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 – D

256 47 – D

273 236 – D

183 277 – 38, 285190 – – 220, 305, 382331 – – 71, 160, 374– – – 75, 330, 376

Cuadro 3: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 631: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

14 3 Resolucion explayada

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 28, 246 D

256 47 47, 256 D

273 236 236, 273 D

183 277 38, 183, 277, 285 38, 285

E1 S E2 E3

190 – 28, 246 220, 305, 382331 – 47, 256 71, 160, 374– – 236, 273 75, 330, 376– – 38, 183, 277, 285 –

Cuadro 4: Fase 3

3. Resolucion explayada

Esta seccion tiene como objetivo complementar los ejercicios mostrando las resoluciones completasa los enunciados y agregar los faltantes utilizando el mismo lote de datos. De esta forma el alumnopodra comparar algoritmos.

3.1. Radix Sort descendente

Desarrollar el algoritmo de Radix Sort en orden descendente (entero).

3.1.1. Desarrollo

A continuacion se presenta el desarrollo del Radix Sort en orden Descendente.

Enrique P. Calot Algoritmos y Programacion II

Page 632: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.2 Quick Sort completo 15

Paso 0 Paso 1 Paso 2 Paso 3285 038 190 382038 028 285 376305 047 183 374220 277 382 331382 376 277 330160 246 376 305071 256 075 285374 236 374 277075 285 273 273330 305 071 256376 075 160 246246 374 256 236028 273 047 220256 183 246 190047 382 038 183273 071 236 160236 331 331 075183 220 330 071277 160 028 047190 330 220 038331 190 305 028

3.2. Quick Sort completo

Desarrollar el algoritmo de Quick Sort (hasta haber completado dos niveles de recursividad).

3.2.1. Desarrollo

Paso 1 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Paso 2 47 38 190 220 277 160 71 183 75 236 273 246 28 256 285 376 330 374 382 305 331

Paso 3 28 38 47 220 277 160 71 183 75 236 273 246 190 256 305 330 374 331 376 382

Paso 4 28 38 75 190 160 71 183 220 236 273 246 277 256 305 330 374 331

Paso 5 71 75 160 190 183 236 273 246 277 256 330 374 331

Paso 6 160 190 183 256 246 273 277 331 374

Final 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

3.3. Heap Sort completo

Desarrollar el algoritmo de Heap Sort en orden ascendente (entero).

Algoritmos y Programacion II Facultad de Ingenierıa

Page 633: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

16 3.3 Heap Sort completo

3.3.1. Arbol inicial

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Arbol inicial y su vector asociadoHeapfy paso 0

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Heapfy paso 1

285

38 305

220 382 160 71

374 277 331 376 246 28 256 47

273 236 183 75 190 330

Vector:

285 38 305 220 382 160 71 374 277 331 376 246 28 256 47 273 236 183 75 190 330

Enrique P. Calot Algoritmos y Programacion II

Page 634: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 17

Heapfy paso 2

285

38 305

374 382 246 256

273 277 331 376 160 28 71 47

220 236 183 75 190 330

Vector:

285 38 305 374 382 246 256 273 277 331 376 160 28 71 47 220 236 183 75 190 330

Heapfy paso 3

285

382 305

374 376 246 256

273 277 331 38 160 28 71 47

220 236 183 75 190 330

Vector:

285 382 305 374 376 246 256 273 277 331 38 160 28 71 47 220 236 183 75 190 330

Heapfy paso 4

382

376 305

374 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 190 285

Vector:

382 376 305 374 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 190 285

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 635: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

18 3.3 Heap Sort completo

285

376 305

374 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 190 382

Vector:

285 376 305 374 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 190 382

Swapdown

376

374 305

285 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 190 382

Vector:

376 374 305 285 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 190 382

Intercambio y congelamiento

190

374 305

285 331 246 256

273 277 330 38 160 28 71 47

220 236 183 75 376 382

Vector:

190 374 305 285 331 246 256 273 277 330 38 160 28 71 47 220 236 183 75 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 636: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 19

374

331 305

285 330 246 256

273 277 190 38 160 28 71 47

220 236 183 75 376 382

Vector:

374 331 305 285 330 246 256 273 277 190 38 160 28 71 47 220 236 183 75 376 382

Intercambio y congelamiento

75

331 305

285 330 246 256

273 277 190 38 160 28 71 47

220 236 183 374 376 382

Vector:

75 331 305 285 330 246 256 273 277 190 38 160 28 71 47 220 236 183 374 376 382

Swapdown

331

330 305

285 190 246 256

273 277 75 38 160 28 71 47

220 236 183 374 376 382

Vector:

331 330 305 285 190 246 256 273 277 75 38 160 28 71 47 220 236 183 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 637: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

20 3.3 Heap Sort completo

183

330 305

285 190 246 256

273 277 75 38 160 28 71 47

220 236 331 374 376 382

Vector:

183 330 305 285 190 246 256 273 277 75 38 160 28 71 47 220 236 331 374 376 382

Swapdown

330

285 305

277 190 246 256

273 183 75 38 160 28 71 47

220 236 331 374 376 382

Vector:

330 285 305 277 190 246 256 273 183 75 38 160 28 71 47 220 236 331 374 376 382

Intercambio y congelamiento

236

285 305

277 190 246 256

273 183 75 38 160 28 71 47

220 330 331 374 376 382

Vector:

236 285 305 277 190 246 256 273 183 75 38 160 28 71 47 220 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 638: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 21

305

285 256

277 190 246 236

273 183 75 38 160 28 71 47

220 330 331 374 376 382

Vector:

305 285 256 277 190 246 236 273 183 75 38 160 28 71 47 220 330 331 374 376 382

Intercambio y congelamiento

220

285 256

277 190 246 236

273 183 75 38 160 28 71 47

305 330 331 374 376 382

Vector:

220 285 256 277 190 246 236 273 183 75 38 160 28 71 47 305 330 331 374 376 382

Swapdown

285

277 256

273 190 246 236

220 183 75 38 160 28 71 47

305 330 331 374 376 382

Vector:

285 277 256 273 190 246 236 220 183 75 38 160 28 71 47 305 330 331 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 639: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

22 3.3 Heap Sort completo

47

277 256

273 190 246 236

220 183 75 38 160 28 71 285

305 330 331 374 376 382

Vector:

47 277 256 273 190 246 236 220 183 75 38 160 28 71 285 305 330 331 374 376 382

Swapdown

277

273 256

220 190 246 236

47 183 75 38 160 28 71 285

305 330 331 374 376 382

Vector:

277 273 256 220 190 246 236 47 183 75 38 160 28 71 285 305 330 331 374 376 382

Intercambio y congelamiento

71

273 256

220 190 246 236

47 183 75 38 160 28 277 285

305 330 331 374 376 382

Vector:

71 273 256 220 190 246 236 47 183 75 38 160 28 277 285 305 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 640: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 23

273

220 256

183 190 246 236

47 71 75 38 160 28 277 285

305 330 331 374 376 382

Vector:

273 220 256 183 190 246 236 47 71 75 38 160 28 277 285 305 330 331 374 376 382

Intercambio y congelamiento

28

220 256

183 190 246 236

47 71 75 38 160 273 277 285

305 330 331 374 376 382

Vector:

28 220 256 183 190 246 236 47 71 75 38 160 273 277 285 305 330 331 374 376 382

Swapdown

256

220 246

183 190 160 236

47 71 75 38 28 273 277 285

305 330 331 374 376 382

Vector:

256 220 246 183 190 160 236 47 71 75 38 28 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 641: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

24 3.3 Heap Sort completo

28

220 246

183 190 160 236

47 71 75 38 256 273 277 285

305 330 331 374 376 382

Vector:

28 220 246 183 190 160 236 47 71 75 38 256 273 277 285 305 330 331 374 376 382

Swapdown

246

220 236

183 190 160 28

47 71 75 38 256 273 277 285

305 330 331 374 376 382

Vector:

246 220 236 183 190 160 28 47 71 75 38 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

38

220 236

183 190 160 28

47 71 75 246 256 273 277 285

305 330 331 374 376 382

Vector:

38 220 236 183 190 160 28 47 71 75 246 256 273 277 285 305 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 642: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 25

236

220 160

183 190 38 28

47 71 75 246 256 273 277 285

305 330 331 374 376 382

Vector:

236 220 160 183 190 38 28 47 71 75 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

75

220 160

183 190 38 28

47 71 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

75 220 160 183 190 38 28 47 71 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

220

190 160

183 75 38 28

47 71 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

220 190 160 183 75 38 28 47 71 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 643: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

26 3.3 Heap Sort completo

71

190 160

183 75 38 28

47 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

71 190 160 183 75 38 28 47 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

190

183 160

71 75 38 28

47 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

190 183 160 71 75 38 28 47 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

47

183 160

71 75 38 28

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

47 183 160 71 75 38 28 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 644: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 27

183

75 160

71 47 38 28

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

183 75 160 71 47 38 28 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

28

75 160

71 47 38 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

28 75 160 71 47 38 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

160

75 38

71 47 28 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

160 75 38 71 47 28 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 645: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

28 3.3 Heap Sort completo

28

75 38

71 47 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

28 75 38 71 47 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

75

71 38

28 47 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

75 71 38 28 47 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

47

71 38

28 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

47 71 38 28 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 646: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.3 Heap Sort completo 29

71

47 38

28 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

71 47 38 28 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

28

47 38

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

28 47 38 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

47

28 38

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

47 28 38 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

Algoritmos y Programacion II Facultad de Ingenierıa

Page 647: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

30 3.3 Heap Sort completo

38

28 47

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

38 28 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

38

28 47

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

38 28 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Intercambio y congelamiento

28

38 47

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

Swapdown

Enrique P. Calot Algoritmos y Programacion II

Page 648: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 31

28

38 47

71 75 160 183

190 220 236 246 256 273 277 285

305 330 331 374 376 382

Vector:

28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382

3.4. Heap Sort descendente

Desarrollar el algoritmo de Heap Sort en orden descendente (entero).

3.4.1. Arbol inicial

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Arbol inicial y su vector asociadoHeapfy paso 0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 649: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

32 3.4 Heap Sort descendente

285

38 305

220 382 160 71

374 75 330 376 246 28 256 47

273 236 183 277 190 331

Vector:

285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331

Heapfy paso 1

285

38 305

220 382 160 71

236 75 190 376 246 28 256 47

273 374 183 277 330 331

Vector:

285 38 305 220 382 160 71 236 75 190 376 246 28 256 47 273 374 183 277 330 331

Heapfy paso 2

285

38 305

75 190 28 47

236 183 330 376 246 160 256 71

273 374 220 277 382 331

Vector:

285 38 305 75 190 28 47 236 183 330 376 246 160 256 71 273 374 220 277 382 331

Heapfy paso 3

Enrique P. Calot Algoritmos y Programacion II

Page 650: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 33

285

38 28

75 190 160 47

236 183 330 376 246 305 256 71

273 374 220 277 382 331

Vector:

285 38 28 75 190 160 47 236 183 330 376 246 305 256 71 273 374 220 277 382 331

Heapfy paso 4

28

38 47

75 190 160 71

236 183 330 376 246 305 256 285

273 374 220 277 382 331

Vector:

28 38 47 75 190 160 71 236 183 330 376 246 305 256 285 273 374 220 277 382 331

Intercambio y congelamiento

331

38 47

75 190 160 71

236 183 330 376 246 305 256 285

273 374 220 277 382 28

Vector:

331 38 47 75 190 160 71 236 183 330 376 246 305 256 285 273 374 220 277 382 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 651: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

34 3.4 Heap Sort descendente

38

75 47

183 190 160 71

236 220 330 376 246 305 256 285

273 374 331 277 382 28

Vector:

38 75 47 183 190 160 71 236 220 330 376 246 305 256 285 273 374 331 277 382 28

Intercambio y congelamiento

382

75 47

183 190 160 71

236 220 330 376 246 305 256 285

273 374 331 277 38 28

Vector:

382 75 47 183 190 160 71 236 220 330 376 246 305 256 285 273 374 331 277 38 28

Swapdown

47

75 71

183 190 160 256

236 220 330 376 246 305 382 285

273 374 331 277 38 28

Vector:

47 75 71 183 190 160 256 236 220 330 376 246 305 382 285 273 374 331 277 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 652: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 35

277

75 71

183 190 160 256

236 220 330 376 246 305 382 285

273 374 331 47 38 28

Vector:

277 75 71 183 190 160 256 236 220 330 376 246 305 382 285 273 374 331 47 38 28

Swapdown

71

75 160

183 190 246 256

236 220 330 376 277 305 382 285

273 374 331 47 38 28

Vector:

71 75 160 183 190 246 256 236 220 330 376 277 305 382 285 273 374 331 47 38 28

Intercambio y congelamiento

331

75 160

183 190 246 256

236 220 330 376 277 305 382 285

273 374 71 47 38 28

Vector:

331 75 160 183 190 246 256 236 220 330 376 277 305 382 285 273 374 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 653: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

36 3.4 Heap Sort descendente

75

183 160

220 190 246 256

236 331 330 376 277 305 382 285

273 374 71 47 38 28

Vector:

75 183 160 220 190 246 256 236 331 330 376 277 305 382 285 273 374 71 47 38 28

Intercambio y congelamiento

374

183 160

220 190 246 256

236 331 330 376 277 305 382 285

273 75 71 47 38 28

Vector:

374 183 160 220 190 246 256 236 331 330 376 277 305 382 285 273 75 71 47 38 28

Swapdown

160

183 246

220 190 277 256

236 331 330 376 374 305 382 285

273 75 71 47 38 28

Vector:

160 183 246 220 190 277 256 236 331 330 376 374 305 382 285 273 75 71 47 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 654: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 37

273

183 246

220 190 277 256

236 331 330 376 374 305 382 285

160 75 71 47 38 28

Vector:

273 183 246 220 190 277 256 236 331 330 376 374 305 382 285 160 75 71 47 38 28

Swapdown

183

190 246

220 273 277 256

236 331 330 376 374 305 382 285

160 75 71 47 38 28

Vector:

183 190 246 220 273 277 256 236 331 330 376 374 305 382 285 160 75 71 47 38 28

Intercambio y congelamiento

285

190 246

220 273 277 256

236 331 330 376 374 305 382 183

160 75 71 47 38 28

Vector:

285 190 246 220 273 277 256 236 331 330 376 374 305 382 183 160 75 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 655: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

38 3.4 Heap Sort descendente

190

220 246

236 273 277 256

285 331 330 376 374 305 382 183

160 75 71 47 38 28

Vector:

190 220 246 236 273 277 256 285 331 330 376 374 305 382 183 160 75 71 47 38 28

Intercambio y congelamiento

382

220 246

236 273 277 256

285 331 330 376 374 305 190 183

160 75 71 47 38 28

Vector:

382 220 246 236 273 277 256 285 331 330 376 374 305 190 183 160 75 71 47 38 28

Swapdown

220

236 246

285 273 277 256

382 331 330 376 374 305 190 183

160 75 71 47 38 28

Vector:

220 236 246 285 273 277 256 382 331 330 376 374 305 190 183 160 75 71 47 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 656: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 39

305

236 246

285 273 277 256

382 331 330 376 374 220 190 183

160 75 71 47 38 28

Vector:

305 236 246 285 273 277 256 382 331 330 376 374 220 190 183 160 75 71 47 38 28

Swapdown

236

273 246

285 305 277 256

382 331 330 376 374 220 190 183

160 75 71 47 38 28

Vector:

236 273 246 285 305 277 256 382 331 330 376 374 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

374

273 246

285 305 277 256

382 331 330 376 236 220 190 183

160 75 71 47 38 28

Vector:

374 273 246 285 305 277 256 382 331 330 376 236 220 190 183 160 75 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 657: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

40 3.4 Heap Sort descendente

246

273 256

285 305 277 374

382 331 330 376 236 220 190 183

160 75 71 47 38 28

Vector:

246 273 256 285 305 277 374 382 331 330 376 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

376

273 256

285 305 277 374

382 331 330 246 236 220 190 183

160 75 71 47 38 28

Vector:

376 273 256 285 305 277 374 382 331 330 246 236 220 190 183 160 75 71 47 38 28

Swapdown

256

273 277

285 305 376 374

382 331 330 246 236 220 190 183

160 75 71 47 38 28

Vector:

256 273 277 285 305 376 374 382 331 330 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 658: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 41

330

273 277

285 305 376 374

382 331 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

330 273 277 285 305 376 374 382 331 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

273

285 277

330 305 376 374

382 331 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

273 285 277 330 305 376 374 382 331 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

331

285 277

330 305 376 374

382 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

331 285 277 330 305 376 374 382 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 659: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

42 3.4 Heap Sort descendente

277

285 331

330 305 376 374

382 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

277 285 331 330 305 376 374 382 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

382

285 331

330 305 376 374

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

382 285 331 330 305 376 374 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

285

305 331

330 382 376 374

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

285 305 331 330 382 376 374 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 660: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 43

374

305 331

330 382 376 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

374 305 331 330 382 376 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

305

330 331

374 382 376 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

305 330 331 374 382 376 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

376

330 331

374 382 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

376 330 331 374 382 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 661: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

44 3.4 Heap Sort descendente

330

374 331

376 382 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

330 374 331 376 382 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

382

374 331

376 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

382 374 331 376 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

331

374 382

376 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

331 374 382 376 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

Enrique P. Calot Algoritmos y Programacion II

Page 662: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.4 Heap Sort descendente 45

376

374 382

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

376 374 382 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

374

376 382

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

374 376 382 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

382

376 374

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

Algoritmos y Programacion II Facultad de Ingenierıa

Page 663: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

46 3.4 Heap Sort descendente

376

382 374

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

376 382 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Intercambio y congelamiento

382

376 374

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Swapdown

382

376 374

331 330 305 285

277 273 256 246 236 220 190 183

160 75 71 47 38 28

Vector:

382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28

Enrique P. Calot Algoritmos y Programacion II

Page 664: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.5 Merge Polifasico de las salidas por seleccion natural 47

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 5: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 160, 220, 285,305, 330, 374, 376,382

28, 47, 71, 75, 183,236, 246, 256, 273,277, 331

190 –

Cuadro 6: Fase 1

3.5. Merge Polifasico de las salidas por seleccion natural

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.5.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.5.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.6. Merge Polifasico de las particiones marcadas

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las 7 particionescorrespondientes de ordenadar los subgrupos del lote de datos separados por †.Por ejemplo p1 = {38, 220, 285, 305, 382}; p2 = {71, 160, 374}; . . . ; p6 = {183, 236}; p7 = {190, 277, 331}.

3.6.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.6.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de lascuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 665: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

48 3.6 Merge Polifasico de las particiones marcadas

E1 E2 E3 S

38, 160, 220, 285,305, 330, 374, 376,382

28, 47, 71, 75, 183,236, 246, 256, 273,277, 331

190 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 7: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 8: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 38, 220, 285, 305, 382 –71, 160, 374 75 330, 376 –28, 47, 246, 256, 273 183, 236 – –190, 277, 331 – – –

Cuadro 9: Fase 1

E1 E2 E3 S

D D 38, 220, 285, 305, 382 38, 220, 285, 305, 38271, 160, 374 75 330, 376 71, 75, 160, 330, 374,

376

E1 E2 S E3

28, 47, 246, 256, 273 183, 236 – 38, 220, 285, 305, 382190, 277, 331 – – 71, 75, 160, 330, 374,

376

Cuadro 10: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 666: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.7 Merge Polifasico completo con particiones formadas de 1 elemento 49

E1 E2 E3 S

D D 38, 220, 285, 305, 382 38, 220, 285, 305, 38271, 160, 374 75 330, 376 71, 75, 160, 330, 374,

376

E1 E2 S E3

28, 47, 246, 256, 273 183, 236 28, 38, 47, 183, 220,236, 246, 256, 273,285, 305, 382

38, 220, 285, 305, 382

E1 S E2 E3

190, 277, 331 – 28, 38, 47, 183, 220,236, 246, 256, 273,285, 305, 382

71, 75, 160, 330, 374,376

Cuadro 11: Fase 3

Fases c1 c2 c3∑3

i=1 ci < 210 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 Si5 13 11 7 31 No

Cuadro 12: Calculo de la distribucion de columnas y dummies

3.7. Merge Polifasico completo con particiones formadas de 1 elemento

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particionesordenadas tomadas del lote de datos.

3.7.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.7.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 31 = 13+11+7 = 21+10. Por lo tanto es necesario repartir 31 particionesde las cuales 10 son dummies (particiones vacıas) y 21 son mis particiones de entrada.

3.8. Merge Polifasico con particiones formadas de 2 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 11 particionesordenadas de 2 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {38, 285}; p2 = {220, 305}; . . . ; p10 = {190, 277}; p11 = {331}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 667: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

50 3.8 Merge Polifasico con particiones formadas de 2 elementos

E1 E2 E3 S

D D D –D D D –D D D –D 285 38 –305 220 382 –160 71 374 –75 330 376 –246 28 – –256 47 – –273 236 – –183 277 – –190 – – –331 – – –

Cuadro 13: Fase 1

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 – D

256 47 – D

273 236 – D

183 277 – 38, 285190 – – 220, 305, 382331 – – 71, 160, 374– – – 75, 330, 376

Cuadro 14: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 668: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 51

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 28, 246 D

256 47 47, 256 D

273 236 236, 273 D

183 277 38, 183, 277, 285 38, 285

E1 S E2 E3

190 – 28, 246 220, 305, 382331 – 47, 256 71, 160, 374– – 236, 273 75, 330, 376– – 38, 183, 277, 285 –

Cuadro 15: Fase 3

3.8.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.8.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total + dummies = 17 = 7 + 6 + 4 = 11 + 6. Por lo tanto es necesario repartir 17 particionesde las cuales 6 son dummies (particiones vacıas) y 11 son mis particiones de entrada.

3.9. Merge Polifasico con particiones formadas de 3 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 7 particionesordenadas de 3 elementos cada una tomadas del lote de datos.Por ejemplo p1 = {38, 285, 305}; p2 = {160, 220, 382}; . . . ; p6 = {183, 236, 273}; p7 = {190, 277, 331}.

3.9.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.9.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 7+ 2. Por lo tanto es necesario repartir 9 particiones de las

Algoritmos y Programacion II Facultad de Ingenierıa

Page 669: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

52 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 28, 246 D

256 47 47, 256 D

273 236 236, 273 D

183 277 38, 183, 277, 285 38, 285

E1 S E2 E3

190 28, 190, 220, 246,305, 382

28, 246 220, 305, 382

331 47, 71, 160, 256, 331,374

47, 256 71, 160, 374

S E1 E2 E3

– 28, 190, 220, 246,305, 382

236, 273 75, 330, 376

– 47, 71, 160, 256, 331,374

38, 183, 277, 285 –

Cuadro 16: Fase 4

Enrique P. Calot Algoritmos y Programacion II

Page 670: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 53

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 28, 246 D

256 47 47, 256 D

273 236 236, 273 D

183 277 38, 183, 277, 285 38, 285

E1 S E2 E3

190 28, 190, 220, 246,305, 382

28, 246 220, 305, 382

331 47, 71, 160, 256, 331,374

47, 256 71, 160, 374

S E1 E2 E3

28, 75, 190, 220, 236,246, 273, 305, 330,376, 382

28, 190, 220, 246,305, 382

236, 273 75, 330, 376

E3 E1 E2 S

28, 75, 190, 220, 236,246, 273, 305, 330,376, 382

47, 71, 160, 256, 331,374

38, 183, 277, 285 –

Cuadro 17: Fase 5

Algoritmos y Programacion II Facultad de Ingenierıa

Page 671: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

54 3.9 Merge Polifasico con particiones formadas de 3 elementos

E1 E2 E3 S

D D D D

D D D D

D D D D

D 285 38 38, 285305 220 382 220, 305, 382160 71 374 71, 160, 37475 330 376 75, 330, 376

E1 E2 S E3

246 28 28, 246 D

256 47 47, 256 D

273 236 236, 273 D

183 277 38, 183, 277, 285 38, 285

E1 S E2 E3

190 28, 190, 220, 246,305, 382

28, 246 220, 305, 382

331 47, 71, 160, 256, 331,374

47, 256 71, 160, 374

S E1 E2 E3

28, 75, 190, 220, 236,246, 273, 305, 330,376, 382

28, 190, 220, 246,305, 382

236, 273 75, 330, 376

E3 E1 E2 S

28, 75, 190, 220, 236,246, 273, 305, 330,376, 382

47, 71, 160, 256, 331,374

38, 183, 277, 285 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E1 E2 E3

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 18: Fase final

Fases c1 c2 c3∑3

i=1 ci < 110 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 Si4 7 6 4 17 No

Cuadro 19: Calculo de la distribucion de columnas y dummies

Enrique P. Calot Algoritmos y Programacion II

Page 672: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.9 Merge Polifasico con particiones formadas de 3 elementos 55

E1 E2 E3 S

D D D –D D D –38, 285 220, 305 160, 382 –71, 374 75, 330 246, 376 –28, 256 47, 273 – –183, 236 190, 277 – –331 – – –

Cuadro 20: Fase 1

E1 E2 E3 S

D D D D

D D D D

38, 285 220, 305 160, 382 38, 160, 220, 285,305, 382

71, 374 75, 330 246, 376 71, 75, 246, 330, 374,376

E1 E2 S E3

28, 256 47, 273 – D

183, 236 190, 277 – D

331 – – 38, 160, 220, 285,305, 382

– – – 71, 75, 246, 330, 374,376

Cuadro 21: Fase 2

E1 E2 E3 S

D D D D

D D D D

38, 285 220, 305 160, 382 38, 160, 220, 285,305, 382

71, 374 75, 330 246, 376 71, 75, 246, 330, 374,376

E1 E2 S E3

28, 256 47, 273 28, 47, 256, 273 D

183, 236 190, 277 183, 190, 236, 277 D

E1 S E2 E3

331 – 28, 47, 256, 273 38, 160, 220, 285,305, 382

– – 183, 190, 236, 277 71, 75, 246, 330, 374,376

Cuadro 22: Fase 3

Algoritmos y Programacion II Facultad de Ingenierıa

Page 673: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

56 3.10 Merge Polifasico con particiones formadas de 4 elementos

E1 E2 E3 S

D D D D

D D D D

38, 285 220, 305 160, 382 38, 160, 220, 285,305, 382

71, 374 75, 330 246, 376 71, 75, 246, 330, 374,376

E1 E2 S E3

28, 256 47, 273 28, 47, 256, 273 D

183, 236 190, 277 183, 190, 236, 277 D

E1 S E2 E3

331 28, 38, 47, 160, 220,256, 273, 285, 305,331, 382

28, 47, 256, 273 38, 160, 220, 285,305, 382

S E1 E2 E3

– 28, 38, 47, 160, 220,256, 273, 285, 305,331, 382

183, 190, 236, 277 71, 75, 246, 330, 374,376

Cuadro 23: Fase 4

cuales 2 son dummies (particiones vacıas) y 7 son mis particiones de entrada.

3.10. Merge Polifasico con particiones formadas de 4 elementos

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con 6 particionesordenadas de 4 elementos cada una tomadas del lote de datos.Es decir las particiones serıan p1 = {38, 220, 285, 305}; p2 = {71, 160, 374, 382}; p3 = {75, 246, 330, 376}; p4 ={28, 47, 256, 273}; p5 = {183, 190, 236, 277}; p6 = {331}.

3.10.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.10.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.11. Seleccion de reemplazo con buffer de tamano 2

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 2.

Enrique P. Calot Algoritmos y Programacion II

Page 674: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 57

E1 E2 E3 S

D D D D

D D D D

38, 285 220, 305 160, 382 38, 160, 220, 285,305, 382

71, 374 75, 330 246, 376 71, 75, 246, 330, 374,376

E1 E2 S E3

28, 256 47, 273 28, 47, 256, 273 D

183, 236 190, 277 183, 190, 236, 277 D

E1 S E2 E3

331 28, 38, 47, 160, 220,256, 273, 285, 305,331, 382

28, 47, 256, 273 38, 160, 220, 285,305, 382

S E1 E2 E3

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

28, 38, 47, 160, 220,256, 273, 285, 305,331, 382

183, 190, 236, 277 71, 75, 246, 330, 374,376

E1 S E2 E3

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

– – –

Cuadro 24: Fase final

Fases c1 c2 c3∑3

i=1 ci < 70 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 25: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D 38, 285, 305 –160, 220, 382 71, 75, 374 246, 330, 376 –28, 47, 256 183, 236, 273 – –190, 277, 331 – – –

Cuadro 26: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 675: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

58 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D 38, 285, 305 38, 285, 305160, 220, 382 71, 75, 374 246, 330, 376 71, 75, 160, 220, 246,

330, 374, 376, 382

E1 E2 S E3

28, 47, 256 183, 236, 273 – 38, 285, 305190, 277, 331 – – 71, 75, 160, 220, 246,

330, 374, 376, 382

Cuadro 27: Fase 2

E1 E2 E3 S

D D 38, 285, 305 38, 285, 305160, 220, 382 71, 75, 374 246, 330, 376 71, 75, 160, 220, 246,

330, 374, 376, 382

E1 E2 S E3

28, 47, 256 183, 236, 273 28, 38, 47, 183, 236,256, 273, 285, 305

38, 285, 305

E1 S E2 E3

190, 277, 331 – 28, 38, 47, 183, 236,256, 273, 285, 305

71, 75, 160, 220, 246,330, 374, 376, 382

Cuadro 28: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 676: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 59

E1 E2 E3 S

D D 38, 285, 305 38, 285, 305160, 220, 382 71, 75, 374 246, 330, 376 71, 75, 160, 220, 246,

330, 374, 376, 382

E1 E2 S E3

28, 47, 256 183, 236, 273 28, 38, 47, 183, 236,256, 273, 285, 305

38, 285, 305

E1 S E2 E3

190, 277, 331 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

28, 38, 47, 183, 236,256, 273, 285, 305

71, 75, 160, 220, 246,330, 374, 376, 382

S E1 E2 E3

– 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

– –

Cuadro 29: Fase final

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 30: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –38, 220, 285, 305 71, 160, 374, 382 75, 246, 330, 376 –28, 47, 256, 273 183, 190, 236, 277 – –331 – – –

Cuadro 31: Fase 1

Algoritmos y Programacion II Facultad de Ingenierıa

Page 677: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

60 3.11 Seleccion de reemplazo con buffer de tamano 2

E1 E2 E3 S

D D D D

38, 220, 285, 305 71, 160, 374, 382 75, 246, 330, 376 38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

E1 E2 S E3

28, 47, 256, 273 183, 190, 236, 277 – D

331 – – 38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

Cuadro 32: Fase 2

E1 E2 E3 S

D D D D

38, 220, 285, 305 71, 160, 374, 382 75, 246, 330, 376 38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

E1 E2 S E3

28, 47, 256, 273 183, 190, 236, 277 28, 47, 183, 190, 236,256, 273, 277

D

E1 S E2 E3

331 – 28, 47, 183, 190, 236,256, 273, 277

38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

Cuadro 33: Fase 3

Enrique P. Calot Algoritmos y Programacion II

Page 678: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.11 Seleccion de reemplazo con buffer de tamano 2 61

E1 E2 E3 S

D D D D

38, 220, 285, 305 71, 160, 374, 382 75, 246, 330, 376 38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

E1 E2 S E3

28, 47, 256, 273 183, 190, 236, 277 28, 47, 183, 190, 236,256, 273, 277

D

E1 S E2 E3

331 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

28, 47, 183, 190, 236,256, 273, 277

38, 71, 75, 160, 220,246, 285, 305, 330,374, 376, 382

S E1 E2 E3

– 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

– –

Cuadro 34: Fase final

3.11.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 679: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

62 3.12 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 2

b1 b2 Sale Entra

– – Nada 285

285 – Nada 38

285 38 38 305

285 305 285 220

220 305 305 382

220 382 382 160

220 160

Nueva particion! Se cierra la particion p1 = {38, 285, 305, 382}160 71

220 71 220 374

374 71 374 75

75 71

Nueva particion! Se cierra la particion p2 = {160, 220, 374}71 330

75 330 75 376

376 330 330 246

376 246 376 28

28 246

Nueva particion! Se cierra la particion p3 = {71, 75, 330, 376}28 256

256 246 246 47

256 47 256 273

273 47 273 236

236 47

Nueva particion! Se cierra la particion p4 = {28, 246, 256, 273}47 183

236 183 183 277

236 277 236 190

190 277 277 331

190 331 331 Nada

190 –

Nueva particion! Se cierra la particion p5 = {47, 183, 236, 277, 331}190 Nada

Finaliza la ultima particion en p6 = {190}

3.11.2. Salida final

p1 = {38, 285, 305, 382};

p2 = {160, 220, 374};

p3 = {71, 75, 330, 376};

p4 = {28, 246, 256, 273};

p5 = {47, 183, 236, 277, 331};

p6 = {190}.

3.12. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 680: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 63

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 35: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 –28, 246, 256, 273 47, 183, 236, 277, 331 – –190 – – –

Cuadro 36: Fase 1

3.12.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.12.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

3.13. Seleccion Natural con buffers de tamano 2

Desarrollar el algoritmo de seleccion natural con buffers de tamano 2.

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 – D

190 – – 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

Cuadro 37: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 681: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

64 3.13 Seleccion Natural con buffers de tamano 2

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 28, 47, 183, 236, 246,256, 273, 277, 331

D

E1 S E2 E3

190 – 28, 47, 183, 236, 246,256, 273, 277, 331

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

Cuadro 38: Fase 3

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 28, 47, 183, 236, 246,256, 273, 277, 331

D

E1 S E2 E3

190 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

28, 47, 183, 236, 246,256, 273, 277, 331

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

S E1 E2 E3

– 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

– –

Cuadro 39: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 682: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.13 Seleccion Natural con buffers de tamano 2 65

3.13.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

b1 b2 a1 a2 Sale Entra

– – – – Nada 285

285 – – – Nada 38

285 38 – – 38 305

285 305 – – 285 220

– 305 220 – Nada 382

382 305 220 – 305 160

382 – 220 160 382 Nada

220 160 – –

Nueva particion! Se cierra la particion p1 = {38, 285, 305, 382}160 71

220 – 71 – Nada 374

220 374 71 – 220 75

– 374 71 75 374 Nada

71 75 – –

Nueva particion! Se cierra la particion p2 = {160, 220, 374}71 330

330 75 – – 75 376

330 376 – – 330 246

– 376 246 – Nada 28

– 376 246 28 376 Nada

246 28 – –

Nueva particion! Se cierra la particion p3 = {71, 75, 330, 376}28 256

246 256 – – 246 47

– 256 47 – Nada 273

273 256 47 – 256 236

273 – 47 236 273 Nada

47 236 – –

Nueva particion! Se cierra la particion p4 = {28, 246, 256, 273}47 183

183 236 – – 183 277

277 236 – – 236 190

277 – 190 – Nada 331

277 331 190 – 277 Nada

– 331 190 – 331 Nada

190 – – –

Nueva particion! Se cierra la particion p5 = {47, 183, 236, 277, 331}190 Nada

Finaliza la ultima particion en p6 = {190}

3.13.2. Salida final

p1 = {38, 285, 305, 382};

p2 = {160, 220, 374};

p3 = {71, 75, 330, 376};

p4 = {28, 246, 256, 273};

p5 = {47, 183, 236, 277, 331};

p6 = {190}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 683: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

66 3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2

Fases c1 c2 c3∑3

i=1 ci < 60 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 Si3 4 3 2 9 No

Cuadro 40: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D D D –38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 –28, 246, 256, 273 47, 183, 236, 277, 331 – –190 – – –

Cuadro 41: Fase 1

3.14. Merge Polifasico de las salidas por seleccion natural de buffers tamano

2

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.14.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.14.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 9 = 4+ 3+ 2 = 6+ 3. Por lo tanto es necesario repartir 9 particiones de lascuales 3 son dummies (particiones vacıas) y 6 son mis particiones de entrada.

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 – D

190 – – 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

Cuadro 42: Fase 2

Enrique P. Calot Algoritmos y Programacion II

Page 684: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.14 Merge Polifasico de las salidas por seleccion natural de buffers tamano 2 67

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 28, 47, 183, 236, 246,256, 273, 277, 331

D

E1 S E2 E3

190 – 28, 47, 183, 236, 246,256, 273, 277, 331

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

Cuadro 43: Fase 3

E1 E2 E3 S

D D D D

38, 285, 305, 382 160, 220, 374 71, 75, 330, 376 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 246, 256, 273 47, 183, 236, 277, 331 28, 47, 183, 236, 246,256, 273, 277, 331

D

E1 S E2 E3

190 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

28, 47, 183, 236, 246,256, 273, 277, 331

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

S E1 E2 E3

– 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

– –

Cuadro 44: Fase final

Algoritmos y Programacion II Facultad de Ingenierıa

Page 685: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

68 3.15 Seleccion de reemplazo con buffer de tamano 3

3.15. Seleccion de reemplazo con buffer de tamano 3

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 3.

3.15.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

b1 b2 b3 Sale Entra

– – – Nada 285

285 – – Nada 38

285 38 – Nada 305

285 38 305 38 220

285 220 305 220 382

285 382 305 285 160

160 382 305 305 71

160 382 71 382 374

160 374 71

Nueva particion! Se cierra la particion p1 = {38, 220, 285, 305, 382}71 75

160 374 75 75 330

160 374 330 160 376

376 374 330 330 246

376 374 246 374 28

376 28 246 376 256

256 28 246

Nueva particion! Se cierra la particion p2 = {71, 75, 160, 330, 374, 376}28 47

256 47 246 47 273

256 273 246 246 236

256 273 236 256 183

183 273 236 273 277

183 277 236 277 190

183 190 236

Nueva particion! Se cierra la particion p3 = {28, 47, 246, 256, 273, 277}183 331

331 190 236 190 Nada

331 – 236 236 Nada

331 – – 331 Nada

Finaliza la ultima particion en p4 = {183, 190, 236, 331}

3.15.2. Salida final

p1 = {38, 220, 285, 305, 382};

p2 = {71, 75, 160, 330, 374, 376};

p3 = {28, 47, 246, 256, 273, 277};

p4 = {183, 190, 236, 331}.

3.16. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

Enrique P. Calot Algoritmos y Programacion II

Page 686: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.17 Seleccion Natural con buffers de tamano 3 69

Fases c1 c2 c3∑3

i=1 ci < 40 1 0 0 1 Si1 1 1 1 3 Si2 2 2 1 5 No

Cuadro 45: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 220, 285, 305, 382 71, 75, 160, 330, 374,376

28, 47, 246, 256, 273,277

183, 190, 236, 331 – –

Cuadro 46: Fase 1

3.16.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.16.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 5 = 2+ 2+ 1 = 4+ 1. Por lo tanto es necesario repartir 5 particiones de lascuales 1 son dummies (particiones vacıas) y 4 son mis particiones de entrada.

3.17. Seleccion Natural con buffers de tamano 3

Desarrollar el algoritmo de seleccion natural con buffers de tamano 3.

3.17.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

E1 E2 E3 S

D 38, 220, 285, 305, 382 71, 75, 160, 330, 374,376

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 47, 246, 256, 273,277

183, 190, 236, 331 – 38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

Cuadro 47: Fase 2

Algoritmos y Programacion II Facultad de Ingenierıa

Page 687: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

70 3.17 Seleccion Natural con buffers de tamano 3

E1 E2 E3 S

D 38, 220, 285, 305, 382 71, 75, 160, 330, 374,376

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

E1 E2 S E3

28, 47, 246, 256, 273,277

183, 190, 236, 331 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

38, 71, 75, 160, 220,285, 305, 330, 374,376, 382

S E2 E1 E3

– – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 48: Fase final

Enrique P. Calot Algoritmos y Programacion II

Page 688: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.18 Merge Polifasico de las salidas por seleccion natural de buffers tamano 3 71

b1 b2 b3 a1 a2 a3 Sale Entra

– – – – – – Nada 285

285 – – – – – Nada 38

285 38 – – – – Nada 305

285 38 305 – – – 38 220

285 220 305 – – – 220 382

285 382 305 – – – 285 160

– 382 305 160 – – Nada 71

– 382 305 160 71 – Nada 374

374 382 305 160 71 – 305 75

374 382 – 160 71 75 374 Nada

– 382 – 160 71 75 382 Nada

160 71 75 – – –

Nueva particion! Se cierra la particion p1 = {38, 220, 285, 305, 374, 382}71 330

160 330 75 – – – 75 376

160 330 376 – – – 160 246

246 330 376 – – – 246 28

– 330 376 28 – – Nada 256

256 330 376 28 – – 256 47

– 330 376 28 47 – Nada 273

273 330 376 28 47 – 273 236

– 330 376 28 47 236 330 Nada

– – 376 28 47 236 376 Nada

28 47 236 – – –

Nueva particion! Se cierra la particion p2 = {71, 75, 160, 246, 256, 273, 330, 376}28 183

183 47 236 – – – 47 277

183 277 236 – – – 183 190

190 277 236 – – – 190 331

331 277 236 – – – 236 Nada

331 277 – – – – 277 Nada

331 – – – – – 331 Nada

Finaliza la ultima particion en p3 = {28, 47, 183, 190, 236, 277, 331}

3.17.2. Salida final

p1 = {38, 220, 285, 305, 374, 382};

p2 = {71, 75, 160, 246, 256, 273, 330, 376};

p3 = {28, 47, 183, 190, 236, 277, 331}.

3.18. Merge Polifasico de las salidas por seleccion natural de buffers tamano

3

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.18.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.18.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de las

Algoritmos y Programacion II Facultad de Ingenierıa

Page 689: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

72 3.19 Seleccion de reemplazo con buffer de tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 49: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 220, 285, 305,374, 382

71, 75, 160, 246, 256,273, 330, 376

28, 47, 183, 190, 236,277, 331

Cuadro 50: Fase 1

cuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.19. Seleccion de reemplazo con buffer de tamano 4

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 4.

3.19.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 690: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.19 Seleccion de reemplazo con buffer de tamano 4 73

E1 E2 E3 S

38, 220, 285, 305,374, 382

71, 75, 160, 246, 256,273, 330, 376

28, 47, 183, 190, 236,277, 331

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 51: Fase final

b1 b2 b3 b4 Sale Entra

– – – – Nada 285

285 – – – Nada 38

285 38 – – Nada 305

285 38 305 – Nada 220

285 38 305 220 38 382

285 382 305 220 220 160

285 382 305 160 285 71

71 382 305 160 305 374

71 382 374 160 374 75

71 382 75 160 382 330

71 330 75 160

Nueva particion! Se cierra la particion p1 =

{38, 220, 285, 305, 374, 382}71 376

376 330 75 160 75 246

376 330 246 160 160 28

376 330 246 28 246 256

376 330 256 28 256 47

376 330 47 28 330 273

376 273 47 28 376 236

236 273 47 28

Nueva particion! Se cierra la particion p2 =

{71, 75, 160, 246, 256, 330, 376}28 183

236 273 47 183 47 277

236 273 277 183 183 190

236 273 277 190 190 331

236 273 277 331 236 Nada

– 273 277 331 273 Nada

– – 277 331 277 Nada

– – – 331 331 Nada

Finaliza la ultima particion en p3 =

{28, 47, 183, 190, 236, 273, 277, 331}

3.19.2. Salida final

p1 = {38, 220, 285, 305, 374, 382};

p2 = {71, 75, 160, 246, 256, 330, 376};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 691: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

74 3.20 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 52: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 220, 285, 305,374, 382

71, 75, 160, 246, 256,330, 376

28, 47, 183, 190, 236,273, 277, 331

Cuadro 53: Fase 1

p3 = {28, 47, 183, 190, 236, 273, 277, 331}.

3.20. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.20.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.20.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.21. Seleccion Natural con buffers de tamano 4

Desarrollar el algoritmo de seleccion natural con buffers de tamano 4.

3.21.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 692: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.21 Seleccion Natural con buffers de tamano 4 75

E1 E2 E3 S

38, 220, 285, 305,374, 382

71, 75, 160, 246, 256,330, 376

28, 47, 183, 190, 236,273, 277, 331

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 54: Fase final

b1 b2 b3 b4 a1 a2 a3 a4 Sale Entra

– – – – – – – – Nada 285

285 – – – – – – – Nada 38

285 38 – – – – – – Nada 305

285 38 305 – – – – – Nada 220

285 38 305 220 – – – – 38 382

285 382 305 220 – – – – 220 160

285 382 305 – 160 – – – Nada 71

285 382 305 – 160 71 – – Nada 374

285 382 305 374 160 71 – – 285 75

– 382 305 374 160 71 75 – Nada 330

330 382 305 374 160 71 75 – 305 376

330 382 376 374 160 71 75 – 330 246

– 382 376 374 160 71 75 246 374 Nada

– 382 376 – 160 71 75 246 376 Nada

– 382 – – 160 71 75 246 382 Nada

160 71 75 246 – – – –

Nueva particion! Se cierra la particion p1 = {38, 220, 285, 305, 330, 374, 376, 382}71 28

160 – 75 246 28 – – – Nada 256

160 256 75 246 28 – – – 75 47

160 256 – 246 28 47 – – Nada 273

160 256 273 246 28 47 – – 160 236

236 256 273 246 28 47 – – 236 183

– 256 273 246 28 47 183 – Nada 277

277 256 273 246 28 47 183 – 246 190

277 256 273 – 28 47 183 190 256 Nada

277 – 273 – 28 47 183 190 273 Nada

277 – – – 28 47 183 190 277 Nada

28 47 183 190 – – – –

Nueva particion! Se cierra la particion p2 = {71, 75, 160, 236, 246, 256, 273, 277}28 331

331 47 183 190 – – – – 47 Nada

331 – 183 190 – – – – 183 Nada

331 – – 190 – – – – 190 Nada

331 – – – – – – – 331 Nada

Finaliza la ultima particion en p3 = {28, 47, 183, 190, 331}

Algoritmos y Programacion II Facultad de Ingenierıa

Page 693: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

76 3.22 Merge Polifasico de las salidas por seleccion natural de buffers tamano 4

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 55: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 220, 285, 305,330, 374, 376, 382

71, 75, 160, 236, 246,256, 273, 277

28, 47, 183, 190, 331 –

Cuadro 56: Fase 1

3.21.2. Salida final

p1 = {38, 220, 285, 305, 330, 374, 376, 382};

p2 = {71, 75, 160, 236, 246, 256, 273, 277};

p3 = {28, 47, 183, 190, 331}.

3.22. Merge Polifasico de las salidas por seleccion natural de buffers tamano

4

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.22.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.22.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.23. Seleccion de reemplazo con buffer de tamano 5

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 5.

3.23.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 694: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.23 Seleccion de reemplazo con buffer de tamano 5 77

E1 E2 E3 S

38, 220, 285, 305,330, 374, 376, 382

71, 75, 160, 236, 246,256, 273, 277

28, 47, 183, 190, 331 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 57: Fase final

b1 b2 b3 b4 b5 Sale Entra

– – – – – Nada 285

285 – – – – Nada 38

285 38 – – – Nada 305

285 38 305 – – Nada 220

285 38 305 220 – Nada 382

285 38 305 220 382 38 160

285 160 305 220 382 160 71

285 71 305 220 382 220 374

285 71 305 374 382 285 75

75 71 305 374 382 305 330

75 71 330 374 382 330 376

75 71 376 374 382 374 246

75 71 376 246 382 376 28

75 71 28 246 382 382 256

75 71 28 246 256

Nueva particion! Se cierra la particion p1 =

{38, 160, 220, 285, 305, 330, 374, 376, 382}28 47

75 71 47 246 256 47 273

75 71 273 246 256 71 236

75 236 273 246 256 75 183

183 236 273 246 256 183 277

277 236 273 246 256 236 190

277 190 273 246 256 246 331

277 190 273 331 256 256 Nada

277 190 273 331 – 273 Nada

277 190 – 331 – 277 Nada

– 190 – 331 – 331 Nada

– 190 – – –

Nueva particion! Se cierra la particion p2 =

{28, 47, 71, 75, 183, 236, 246, 256, 273, 277, 331}190 Nada

Finaliza la ultima particion en p3 = {190}

3.23.2. Salida final

p1 = {38, 160, 220, 285, 305, 330, 374, 376, 382};

p2 = {28, 47, 71, 75, 183, 236, 246, 256, 273, 277, 331};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 695: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

78 3.24 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 5

Fases c1 c2 c3∑3

i=1 ci < 30 1 0 0 1 Si1 1 1 1 3 No

Cuadro 58: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

38, 160, 220, 285,305, 330, 374, 376,382

28, 47, 71, 75, 183,236, 246, 256, 273,277, 331

190 –

Cuadro 59: Fase 1

p3 = {190}.

3.24. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 5

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.24.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.24.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 3+ 0. Por lo tanto es necesario repartir 3 particiones de lascuales 0 son dummies (particiones vacıas) y 3 son mis particiones de entrada.

3.25. Seleccion de reemplazo con buffer de tamano 6

Desarrollar el algoritmo de seleccion de reemplazo con un buffer de tamano 6.

3.25.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion de reemplazo para particionar ellote de datos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 696: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.25 Seleccion de reemplazo con buffer de tamano 6 79

E1 E2 E3 S

38, 160, 220, 285,305, 330, 374, 376,382

28, 47, 71, 75, 183,236, 246, 256, 273,277, 331

190 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 60: Fase final

b1 b2 b3 b4 b5 b6 Sale Entra

– – – – – – Nada 285

285 – – – – – Nada 38

285 38 – – – – Nada 305

285 38 305 – – – Nada 220

285 38 305 220 – – Nada 382

285 38 305 220 382 – Nada 160

285 38 305 220 382 160 38 71

285 71 305 220 382 160 71 374

285 374 305 220 382 160 160 75

285 374 305 220 382 75 220 330

285 374 305 330 382 75 285 376

376 374 305 330 382 75 305 246

376 374 246 330 382 75 330 28

376 374 246 28 382 75 374 256

376 256 246 28 382 75 376 47

47 256 246 28 382 75 382 273

47 256 246 28 273 75

Nueva particion! Se cierra la particion p1 =

{38, 71, 160, 220, 285, 305, 330, 374, 376, 382}28 236

47 256 246 236 273 75 47 183

183 256 246 236 273 75 75 277

183 256 246 236 273 277 183 190

190 256 246 236 273 277 190 331

331 256 246 236 273 277 236 Nada

331 256 246 – 273 277 246 Nada

331 256 – – 273 277 256 Nada

331 – – – 273 277 273 Nada

331 – – – – 277 277 Nada

331 – – – – – 331 Nada

Finaliza la ultima particion en p2 =

{28, 47, 75, 183, 190, 236, 246, 256, 273, 277, 331}

3.25.2. Salida final

p1 = {38, 71, 160, 220, 285, 305, 330, 374, 376, 382};

p2 = {28, 47, 75, 183, 190, 236, 246, 256, 273, 277, 331}.

Algoritmos y Programacion II Facultad de Ingenierıa

Page 697: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

80 3.26 Merge Polifasico de las salidas por seleccion de reemplazo de buffer tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 61: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 71, 160, 220, 285,305, 330, 374, 376,382

28, 47, 75, 183, 190,236, 246, 256, 273,277, 331

Cuadro 62: Fase 1

3.26. Merge Polifasico de las salidas por seleccion de reemplazo de buffer

tamano 6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion de reemplazo.

3.26.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.26.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

3.27. Seleccion Natural con buffers de tamano 6

Desarrollar el algoritmo de seleccion natural con buffers de tamano 6.

3.27.1. Desarrollo

A continuacion se presenta el desarrollo del algoritmo de seleccion natural para particionar el lote dedatos dado.

Enrique P. Calot Algoritmos y Programacion II

Page 698: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.27 Seleccion Natural con buffers de tamano 6 81

E1 E2 E3 S

D 38, 71, 160, 220, 285,305, 330, 374, 376,382

28, 47, 75, 183, 190,236, 246, 256, 273,277, 331

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 63: Fase final

b1 b2 b3 b4 b5 b6 a1 a2 a3 a4 a5 a6 Sale Entra

– – – – – – – – – – – – Nada 285

285 – – – – – – – – – – – Nada 38

285 38 – – – – – – – – – – Nada 305

285 38 305 – – – – – – – – – Nada 220

285 38 305 220 – – – – – – – – Nada 382

285 38 305 220 382 – – – – – – – Nada 160

285 38 305 220 382 160 – – – – – – 38 71

285 71 305 220 382 160 – – – – – – 71 374

285 374 305 220 382 160 – – – – – – 160 75

285 374 305 220 382 – 75 – – – – – Nada 330

285 374 305 220 382 330 75 – – – – – 220 376

285 374 305 376 382 330 75 – – – – – 285 246

– 374 305 376 382 330 75 246 – – – – Nada 28

– 374 305 376 382 330 75 246 28 – – – Nada 256

– 374 305 376 382 330 75 246 28 256 – – Nada 47

– 374 305 376 382 330 75 246 28 256 47 – Nada 273

– 374 305 376 382 330 75 246 28 256 47 273 305 Nada

– 374 – 376 382 330 75 246 28 256 47 273 330 Nada

– 374 – 376 382 – 75 246 28 256 47 273 374 Nada

– – – 376 382 – 75 246 28 256 47 273 376 Nada

– – – – 382 – 75 246 28 256 47 273 382 Nada

75 246 28 256 47 273 – – – – – –

Nueva particion! Se cierra la particion p1 = {38, 71, 160, 220, 285, 305, 330, 374, 376, 382}28 236

75 246 236 256 47 273 – – – – – – 47 183

75 246 236 256 183 273 – – – – – – 75 277

277 246 236 256 183 273 – – – – – – 183 190

277 246 236 256 190 273 – – – – – – 190 331

277 246 236 256 331 273 – – – – – – 236 Nada

277 246 – 256 331 273 – – – – – – 246 Nada

277 – – 256 331 273 – – – – – – 256 Nada

277 – – – 331 273 – – – – – – 273 Nada

277 – – – 331 – – – – – – – 277 Nada

– – – – 331 – – – – – – – 331 Nada

Finaliza la ultima particion en p2 = {28, 47, 75, 183, 190, 236, 246, 256, 273, 277, 331}

3.27.2. Salida final

p1 = {38, 71, 160, 220, 285, 305, 330, 374, 376, 382};

Algoritmos y Programacion II Facultad de Ingenierıa

Page 699: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

82 3.28 Merge Polifasico de las salidas por seleccion natural de buffers tamano 6

Fases c1 c2 c3∑3

i=1 ci < 20 1 0 0 1 Si1 1 1 1 3 No

Cuadro 64: Calculo de la distribucion de columnas y dummies

E1 E2 E3 S

D 38, 71, 160, 220, 285,305, 330, 374, 376,382

28, 47, 75, 183, 190,236, 246, 256, 273,277, 331

Cuadro 65: Fase 1

p2 = {28, 47, 75, 183, 190, 236, 246, 256, 273, 277, 331}.

3.28. Merge Polifasico de las salidas por seleccion natural de buffers tamano

6

Desarrollar todas las fases del algoritmo de merge polifasico para 3 vıas de entrada con las particionesobtenidas de la salida del algoritmo de seleccion natural.

3.28.1. Calculo de la distribucion de columnas y dummies

A continuacion se presenta el calculo para obtener la distribucion de entrada de las particiones y sabercuantas particiones dummy seran necesarias incorporar.

3.28.2. Distribucion inicial

Una vez encontrados los numeros de Fibonacci se comienza a distribuir de la siguiente forma: c1 +c2 + c3 = total+ dummies = 3 = 1+ 1+ 1 = 2+ 1. Por lo tanto es necesario repartir 3 particiones de lascuales 1 son dummies (particiones vacıas) y 2 son mis particiones de entrada.

Enrique P. Calot Algoritmos y Programacion II

Page 700: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.29 Bubble Sort ascendente 83

E1 E2 E3 S

D 38, 71, 160, 220, 285,305, 330, 374, 376,382

28, 47, 75, 183, 190,236, 246, 256, 273,277, 331

28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

S E2 E3 E1

– – – 28, 38, 47, 71, 75,160, 183, 190, 220,236, 246, 256, 273,277, 285, 305, 330,331, 374, 376, 382

Cuadro 66: Fase final

3.29. Bubble Sort ascendente

3.29.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 18/20

1 38 285 220 305 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 382 15/19

2 38 220 285 160 71 305 75 330 374 246 28 256 47 273 236 183 277 190 331 376 382 13/18

3 38 220 160 71 285 75 305 330 246 28 256 47 273 236 183 277 190 331 374 376 382 12/17

4 38 160 71 220 75 285 305 246 28 256 47 273 236 183 277 190 330 331 374 376 382 11/16

5 38 71 160 75 220 285 246 28 256 47 273 236 183 277 190 305 330 331 374 376 382 10/15

6 38 71 75 160 220 246 28 256 47 273 236 183 277 190 285 305 330 331 374 376 382 5/14

7 38 71 75 160 220 28 246 47 256 236 183 273 190 277 285 305 330 331 374 376 382 5/13

8 38 71 75 160 28 220 47 246 236 183 256 190 273 277 285 305 330 331 374 376 382 5/12

9 38 71 75 28 160 47 220 236 183 246 190 256 273 277 285 305 330 331 374 376 382 4/11

10 38 71 28 75 47 160 220 183 236 190 246 256 273 277 285 305 330 331 374 376 382 4/10

11 38 28 71 47 75 160 183 220 190 236 246 256 273 277 285 305 330 331 374 376 382 3/9

12 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/8

13 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/7

14 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/6

15 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/5

16 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/4

17 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/3

18 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/2

19 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/1

20 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 701: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

84 3.30 Bubble Sort descendente

3.30. Bubble Sort descendente

3.30.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 18/20

1 285 305 220 382 160 71 374 75 330 376 246 38 256 47 273 236 183 277 190 331 28 15/19

2 305 285 382 220 160 374 75 330 376 246 71 256 47 273 236 183 277 190 331 38 28 12/18

3 305 382 285 220 374 160 330 376 246 75 256 71 273 236 183 277 190 331 47 38 28 12/17

4 382 305 285 374 220 330 376 246 160 256 75 273 236 183 277 190 331 71 47 38 28 11/16

5 382 305 374 285 330 376 246 220 256 160 273 236 183 277 190 331 75 71 47 38 28 10/15

6 382 374 305 330 376 285 246 256 220 273 236 183 277 190 331 160 75 71 47 38 28 8/14

7 382 374 330 376 305 285 256 246 273 236 220 277 190 331 183 160 75 71 47 38 28 4/13

8 382 374 376 330 305 285 256 273 246 236 277 220 331 190 183 160 75 71 47 38 28 4/12

9 382 376 374 330 305 285 273 256 246 277 236 331 220 190 183 160 75 71 47 38 28 2/11

10 382 376 374 330 305 285 273 256 277 246 331 236 220 190 183 160 75 71 47 38 28 2/10

11 382 376 374 330 305 285 273 277 256 331 246 236 220 190 183 160 75 71 47 38 28 2/9

12 382 376 374 330 305 285 277 273 331 256 246 236 220 190 183 160 75 71 47 38 28 1/8

13 382 376 374 330 305 285 277 331 273 256 246 236 220 190 183 160 75 71 47 38 28 1/7

14 382 376 374 330 305 285 331 277 273 256 246 236 220 190 183 160 75 71 47 38 28 1/6

15 382 376 374 330 305 331 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 1/5

16 382 376 374 330 331 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 1/4

17 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/3

18 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/2

19 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/1

20 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 702: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.31 Bilateral Bubble Sort ascendente 85

3.31. Bilateral Bubble Sort ascendente

3.31.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 18/20

1 38 285 220 305 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 382 15/20

2 28 38 285 220 305 160 71 374 75 330 376 246 47 256 183 273 236 190 277 331 382 14/18

3 28 38 220 285 160 71 305 75 330 374 246 47 256 183 273 236 190 277 331 376 382 12/18

4 28 38 47 220 285 160 71 305 75 330 374 246 183 256 190 273 236 277 331 376 382 11/16

5 28 38 47 220 160 71 285 75 305 330 246 183 256 190 273 236 277 331 374 376 382 8/16

6 28 38 47 71 220 160 75 285 183 305 330 246 190 256 236 273 277 331 374 376 382 9/14

7 28 38 47 71 160 75 220 183 285 305 246 190 256 236 273 277 330 331 374 376 382 6/14

8 28 38 47 71 75 160 183 220 190 285 305 246 236 256 273 277 330 331 374 376 382 6/12

9 28 38 47 71 75 160 183 190 220 285 246 236 256 273 277 305 330 331 374 376 382 2/12

10 28 38 47 71 75 160 183 190 220 236 285 246 256 273 277 305 330 331 374 376 382 4/10

11 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/10

12 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/8

13 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/8

14 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/6

15 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/6

16 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/4

17 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/4

18 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/2

19 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/2

20 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 0/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 703: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

86 3.32 Bilateral Bubble Sort descendente

3.32. Bilateral Bubble Sort descendente

3.32.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 18/20

1 285 305 220 382 160 71 374 75 330 376 246 38 256 47 273 236 183 277 190 331 28 17/20

2 382 285 305 220 376 160 71 374 75 330 331 246 38 256 47 273 236 183 277 190 28 14/18

3 382 305 285 376 220 160 374 75 330 331 246 71 256 47 273 236 183 277 190 38 28 13/18

4 382 376 305 285 374 220 160 331 75 330 277 246 71 256 47 273 236 183 190 38 28 10/16

5 382 376 305 374 285 220 331 160 330 277 246 75 256 71 273 236 183 190 47 38 28 9/16

6 382 376 374 305 331 285 220 330 160 277 273 246 75 256 71 236 190 183 47 38 28 9/14

7 382 376 374 331 305 285 330 220 277 273 246 160 256 75 236 190 183 71 47 38 28 6/14

8 382 376 374 331 330 305 285 277 220 273 256 246 160 236 75 190 183 71 47 38 28 6/12

9 382 376 374 331 330 305 285 277 273 256 246 220 236 160 190 183 75 71 47 38 28 2/12

10 382 376 374 331 330 305 285 277 273 256 246 236 220 190 160 183 75 71 47 38 28 1/10

11 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/10

12 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/8

13 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/8

14 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/6

15 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/6

16 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/4

17 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/4

18 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/2

19 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/2

20 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 0/0

Enrique P. Calot Algoritmos y Programacion II

Page 704: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

3.33 Selection Sort ascendente 87

3.33. Selection Sort ascendente

3.33.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 1/20

1 28 38 305 220 382 160 71 374 75 330 376 246 285 256 47 273 236 183 277 190 331 1/19

2 28 38 305 220 382 160 71 374 75 330 376 246 285 256 47 273 236 183 277 190 331 1/18

3 28 38 47 220 382 160 71 374 75 330 376 246 285 256 305 273 236 183 277 190 331 1/17

4 28 38 47 71 382 160 220 374 75 330 376 246 285 256 305 273 236 183 277 190 331 1/16

5 28 38 47 71 75 160 220 374 382 330 376 246 285 256 305 273 236 183 277 190 331 1/15

6 28 38 47 71 75 160 220 374 382 330 376 246 285 256 305 273 236 183 277 190 331 1/14

7 28 38 47 71 75 160 183 374 382 330 376 246 285 256 305 273 236 220 277 190 331 1/13

8 28 38 47 71 75 160 183 190 382 330 376 246 285 256 305 273 236 220 277 374 331 1/12

9 28 38 47 71 75 160 183 190 220 330 376 246 285 256 305 273 236 382 277 374 331 1/11

10 28 38 47 71 75 160 183 190 220 236 376 246 285 256 305 273 330 382 277 374 331 1/10

11 28 38 47 71 75 160 183 190 220 236 246 376 285 256 305 273 330 382 277 374 331 1/9

12 28 38 47 71 75 160 183 190 220 236 246 256 285 376 305 273 330 382 277 374 331 1/8

13 28 38 47 71 75 160 183 190 220 236 246 256 273 376 305 285 330 382 277 374 331 1/7

14 28 38 47 71 75 160 183 190 220 236 246 256 273 277 305 285 330 382 376 374 331 1/6

15 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 382 376 374 331 1/5

16 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 382 376 374 331 1/4

17 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 382 376 374 331 1/3

18 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 376 374 382 1/2

19 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 1/1

20 28 38 47 71 75 160 183 190 220 236 246 256 273 277 285 305 330 331 374 376 382 1/0

Algoritmos y Programacion II Facultad de Ingenierıa

Page 705: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

88 3.34 Selection Sort descendente

3.34. Selection Sort descendente

3.34.1. Desarrollo

0 285 38 305 220 382 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 1/20

1 382 38 305 220 285 160 71 374 75 330 376 246 28 256 47 273 236 183 277 190 331 1/19

2 382 376 305 220 285 160 71 374 75 330 38 246 28 256 47 273 236 183 277 190 331 1/18

3 382 376 374 220 285 160 71 305 75 330 38 246 28 256 47 273 236 183 277 190 331 1/17

4 382 376 374 331 285 160 71 305 75 330 38 246 28 256 47 273 236 183 277 190 220 1/16

5 382 376 374 331 330 160 71 305 75 285 38 246 28 256 47 273 236 183 277 190 220 1/15

6 382 376 374 331 330 305 71 160 75 285 38 246 28 256 47 273 236 183 277 190 220 1/14

7 382 376 374 331 330 305 285 160 75 71 38 246 28 256 47 273 236 183 277 190 220 1/13

8 382 376 374 331 330 305 285 277 75 71 38 246 28 256 47 273 236 183 160 190 220 1/12

9 382 376 374 331 330 305 285 277 273 71 38 246 28 256 47 75 236 183 160 190 220 1/11

10 382 376 374 331 330 305 285 277 273 256 38 246 28 71 47 75 236 183 160 190 220 1/10

11 382 376 374 331 330 305 285 277 273 256 246 38 28 71 47 75 236 183 160 190 220 1/9

12 382 376 374 331 330 305 285 277 273 256 246 236 28 71 47 75 38 183 160 190 220 1/8

13 382 376 374 331 330 305 285 277 273 256 246 236 220 71 47 75 38 183 160 190 28 1/7

14 382 376 374 331 330 305 285 277 273 256 246 236 220 190 47 75 38 183 160 71 28 1/6

15 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 75 38 47 160 71 28 1/5

16 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 38 47 75 71 28 1/4

17 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 47 38 71 28 1/3

18 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 38 47 28 1/2

19 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 1/1

20 382 376 374 331 330 305 285 277 273 256 246 236 220 190 183 160 75 71 47 38 28 1/0

Enrique P. Calot Algoritmos y Programacion II

Page 706: Compilado de resoluciones de ejercicios de final de Algoritmos y Programación II del año 2010

Algoritmos y Programacion II – Catedra Lic. Gustavo Carolo

Evaluacion Integradora – 2010-12-20

– Entregar teorıa y practica por separado – Leer bien el enunciado –a b c d e T P F

Nombre: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Padron: . . . . . . . . . . . .

Mail: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuat.: . . . . . . . . . . . .

Teorıa Tema 1

Dado el siguiente lote de datos:

285, 38, 305, 220, 382†, 160, 71, 374†, 75†, 330, 376†, 246, 28, 256, 47, 273†, 236,

183†, 277, 190, 331†

Se pide:

a. ¿Que es lo que garantiza que una vez congelado un pivote tras una iteracion de Quick Sort este quede ensu posicion final pese a que el resto de los elementos pueden estar completamente desordenados?

b. Procesar el B-tree de orden 2 resultante de ingresar los elementos del lote en el orden dado y luego eliminarlos siguientes:

256, 246†, 277†

Mostrar los resultados parciales tras insertar o eliminar un elemento marcado con †.

c. Desarrollar el algoritmo de seleccion natural con buffers de tamano 5.

d. Desarrollar los algoritmos de Heap Sort en orden ascendente (hacer al menos 1 swapdown), Radix Sort enorden ascendente (entero) y Quick Sort (hasta haber completado dos niveles de recursividad).

e. Desarrollar 2 fases del algoritmo de merge polifasico para 3 vıas de entrada con 21 particiones ordenadastomadas del lote de datos.