Está en la página 1de 4

Ordenamiento de Datos y Algoritmos de Ordenamiento

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

b. Enumere los pasos que haría para un mes.


 Separar en dos arreglos las facturas de meses con 31 dias y en
otro con 30 y 29.
 Separar por cada grupo las facturas de
a. Meses de 31 dias, un arreglo de 4, otro de 3
b. Meses de 30 un arreglo con 2 meses y otro con 3
 Ordenar cada arreglo con método de burbuja
 Unir los arreglos generando un con el orden ya establecido en
los pasos anteriores

c. ¿Qué diferencias tendría su solución respecto al algoritmo que no utilizó?


i. El método de burbuja no sería aplicable, dada la cantidad de datos y
diferencia entre la cantidad de dias de ciertos meses, haciéndolo
ineficiente dadas las comparaciones.
ii. Quick Sort , si bien aplica el Divide y Vencerás, necesitamos un
pivote, y es imposible establecerlo por la diferencia de dias del mes y
la cantidad de datos.
2. Suponga el siguiente conjunto de elementos: {1, 24, 56, 77, 2, 34, 54, 21, 90, 44, 8,
5, 7, 28, 31}
a. Ordénelos utilizando merge sort, quick sort y bubble sort y determine cuál
algoritmo de ordenamiento es más eficiente.
b. Realice un diagrama mostrando cada paso de cada algoritmo hasta que el
conjunto quede ordenado.

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

Se compara mediante pares de posiciones, iniciando en 0 y 1

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

Dado que es un conjunto finito y de pocos elementos, el Merge Sort es el método


más óptimo y eficiente al implementar para ordenar en este tipo de arreglo, con
pocos registros, ya que al dividir y terminar uniendo, su uso de recursos es mejor en
comparación al uso de pivote y método de burbuja. Esto es lo más similar a un árbol
de búsqueda binario
Se podría pensar que el método de burbuja es mejor, pero solo es más sencillo de
realizar, ya que no es óptimo en cuanto a uso de recursos

También podría gustarte