Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Eduardo Martínez V.
Análisis de Algoritmos
Instituto IACC
28-08-2020
1. Suponga que tiene que ordenar todas las facturas de un año por mes y día (desde el
1 al 31 de enero, lo mismo para marzo, abril, etc.).
a. ¿Qué algoritmo utilizaría: bubble sort o merge sort? ¿Por qué?
Dado que son facturas de meses distintos, con condiciones diferentes en
cuanto a la cantidad de días, se dividiría primero en dos grupos (los meses
de 31 días y los meses de 30 y Febrero) Una vez identificado ello, para cada
grupo se divide en meses, hasta ordenar los arreglos de facturas por cada
mes. Una vez realizado ese ordenamiento, se unen los arreglos para tener la
secuencia final a establecer.
Este tipo de orden se conoce como método por intercalación o Merge Sort,
el cual es más eficiente para este tipo de problemáticas, aplicando la
metodología de Divide y Vencerás se hace estable y veloz
Merge Sort
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
1 2 24 34 54 56 77 5 7 8 21 28 31 44 90
1 2 5 7 8 21 24 28 31 34 44 54 56 77 90
Quick Sort
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
PIVOTE
Menor 1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
Mayor i j
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
1 7 56 77 2 34 54 21 90 44 8 5 24 28 31
1 7 5 77 2 34 54 21 90 44 8 56 24 28 31
…….
1 7 5 8 2 21 34 44 54 90 77 56 24 28 31
Se separa en dos arreglos y se ordenan de forma separada, luego se hace un ultimo ordenamiento
1 2 5 7 8 21 24 28 31 34 44 54 56 77 90
Bubble Sort
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 24 56 77 2 34 54 21 90 44 8 5 7 28 31
Menor 1 24 56 2 77 34 54 21 90 44 8 5 7 28 31
Mayor
1 24 56 2 77 34 54 21 90 44 8 5 7 28 31
1 24 56 2 34 77 54 21 90 44 8 5 7 28 31
……
1 24 56 2 34 54 21 77 44 8 5 7 28 31 90
Luego, se vuelve a recorrer del mismo modo, hasta dejar el orden de menor a mayor
1 2 5 7 8 21 24 28 31 34 44 54 56 77 90