Está en la página 1de 7

Informe Programación Básica

Algoritmos De Ordenamiento
Yeison Andrés Gonzalez Ríos – 20181005135 (yeagonzalezr@correo.udistrital.edu.co)
Johan Sebastián López Reyes – 20181025072 (johanreyeschapi@gmail.com)
Universidad Distrital Francisco José de Caldas
Facultad de Ingeniería
Bogotá, Colombia

Resumen- Este documento presenta el  Ordenamiento MergeSort


informe del taller realizado sobre algoritmos (Ordenamiento por Mezcla)
de ordenamiento, donde se apreciaron los más  Generación de números aleatorios
reconocidos algoritmos de ordenamiento  Medición e utilización de funciones
como lo son: Algoritmo Burbuja, selección, de tiempo.
inserción, quicksort y merge sort,
adicionalmente se utilizó generación de 1. Realice la implementación de los
números aleatorios para poder realizar las algoritmos de ordenamiento
correspondientes pruebas sobre cada anteriormente mencionados, en
algoritmo como lo especifica el taller lenguaje C++ sobre la IDE Zinjai
propuesto, también se utilizó la librería 2. La ejecución del programa debe
“Time” ya que contiene la función Clock (), la permitir ingresar los valores del
cual nos permitió la medición del tiempo de arreglo de manera manual (Valores
ejecución de prueba sobre el algoritmo de ingresado por el usuario) o aleatoria
ordenamiento, en el presente informe se (Valores generados por el
presentan graficas donde se realiza la computador).
comparación de tiempos de ejecución de cada 3. El arreglo para ser ordenado es de
algoritmo, con el fin de dar respuestas a la tamaño N
preguntas de conclusión que se describen en 4. Realice las siguientes pruebas para N
el taller. = 50, 500, 1000, 2000, 5000, 10000,
20000, 40000, 70000, 100000,
Palabras claves: Algoritmos de 140000, 180000, 230000, 280000,
Ordenamientos, Arreglos, Generación de 330000, 390000, 450000, 500000,
Números Aleatorios, Medición y utilización 560000, 630000, 700000, 770000,
de funciones de tiempo. 840000, 920000, 1000000, 2000000,
4000000. Mida el tiempo de
ejecución para solo el tiempo que
PROCEDIMIENTO dura en organizar de manera
descendente los datos y diligencie la
Para realizar este taller debe realizar el estudio siguiente tabla para cada algoritmo.
previamente de los siguientes conceptos: 5. Realice una gráfica donde se
 Ordenamiento Burbuja
compare los tiempos de ejecución
 Ordenamiento Selección
para cada algoritmo en cada prueba.
 Ordenamiento Inserción
6. Documente cada programa
 Ordenamiento QuickSort
(Ordenamiento Rápido) 7. Realice un informe donde incluya,
las imágenes de las actividades
realizadas y dé respuesta a las Algoritmo De Ordenamiento Burbuja:
siguientes preguntas:
TIEMPO DE
a. ¿Cuál algoritmo fue más fácil de CANTIDAD DE EJECUCIÓN
implementar? ALGORITMO DATOS (Segundos)
b. ¿Cuál algoritmo a la luz de las pruebas Burbuja 50 0.034
realizadas en más eficiente? Burbuja 500 0.092
Burbuja 1000 0.19
c. ¿Cuál algoritmo a la luz de las pruebas
realizadas en el menos eficiente? Burbuja 2000 0.351
Burbuja 5000 1.017
d. ¿Qué recomendaciones harían a las nuevas Burbuja 10000 2.549
personas para realizar esta práctica? Burbuja 20000 6.827
Burbuja 40000 21.277
8. Adicionalmente, mencionar que Burbuja 70000 55.319
dificultades presentaron para realizar Burbuja 100000 106.918
esta práctica. La práctica la pueden
Burbuja 140000 199.711
realizar en grupos de 2 personas (Una
persona sustenta el trabajo realizado) Burbuja 180000 324.344
Burbuja 230000 559.563s
Burbuja 280000 1012
RESULTADOS Burbuja 330000 1235.47
1. Los Códigos Implementados se
anexan al presente documento como Algoritmo De Ordenamiento Inserción:
archivos “.cpp”, donde en estos se da
cumplimiento a los numerales 2 y 3 CANTIDAD DE TIEMPO DE
del presente talles, es decir el código
de cada algoritmo de ordenamiento ALGORITMO DATOS EJECUCIÓN
permite: Inserción 50 0.022
Inserción 500 0.192
 ingresar los valores del arreglo de
manera manual (Valores ingresado Inserción 1000 0.34
por el usuario) o aleatoria (Valores Inserción 2000 0.535
generados por el computador). Inserción 5000 0.925
 El arreglo para ser ordenado es de
tamaño N Inserción 10000 1.906
Inserción 20000 6.368
4. Tabla con información de tiempos de Inserción 40000 13.864
ejecución para cada algoritmo de
ordenamiento: Inserción 70000 29.102
Inserción 100000 71.485
Inserción 140000 81.526
Inserción 180000 97.755
Inserción 230000 190.74
Inserción 280000 208.36
Inserción 330000 276.203
Algoritmo De Ordenamiento Selección: QuickSort 560000

CANTIDAD DE TIEMPO DE
ALGORITMO DATOS EJECUCIÓN Algoritmo De Ordenamiento MergeSort:
Selección 50 0.025 CANTIDAD DE TIEMPO DE
Selección 500 0.092 ALGORITMO DATOS EJECUCIÓN
Selección 1000 0.243 MergeSort 50 0.036
Selección 2000 0.392 MergeSort 500 0.154
Selección 5000 0.917 MergeSort 1000 0.238
Selección 10000 1.997 MergeSort 2000 0.398
Selección 20000 4.91 MergeSort 5000 0.867
Selección 40000 11.627
MergeSort 10000 2.032
Selección 70000 48.089
MergeSort 20000 7.729
Selección 100000 68.054
MergeSort 40000 13.55
Selección 140000 104.146
MergeSort 70000 15.568
Selección 180000 104.146s
MergeSort 100000 19.358
Selección 230000 307.946
MergeSort 140000 32.498
Selección 280000 434.481
MergeSort 180000 72.77
Selección 330000 543.519
MergeSort 230000 90.64
MergeSort 280000
Algoritmo De Ordenamiento QuickSort:
MergeSort 330000
TIEMPO
CANTIDAD DE
ALGORITMO DE DATOS EJECUCIÓN 5. Grafica de comparación con tiempos de
QuickSort 50 0.018 ejecución Para cada algoritmo:
QuickSort 500 0.171
QuickSort 1000 0.356
QuickSort 2000 0.672
comparacion de algoritmos
QuickSort 5000 1.233 1400000
1200000
tiempo de ejecucion

QuickSort 10000 2.463


QuickSort 20000 5.012s 1000000
800000
QuickSort 40000 18.046
600000
QuickSort 70000 20.402
400000
QuickSort 100000 38.383
200000
QuickSort 140000 46.052
0
QuickSort 180000 56.247 0 100000 200000 300000 400000 500000 600000
QuickSort 230000 78.981 datos ingresados
QuickSort 280000 92.737
QuickSort 330000 104.071 burbuja quicksort inserccion mergesort seleccion
QuickSort 390000 98.584
QuickSort 450000 107.698 Nota: esta grafica se anexa en su formato
QuickSort 500000 104.53 Excel para poder visualizarla de forma
correcta.
Algoritmo Selección:

6. Cada Programa (Archivo .Cpp), se Imagen para 140000 elementos entre 0 y 10:
encuentra documentado.

7. Imágenes de las actividades realizadas en


las pruebas de cada algoritmo de
ordenamiento:

Algoritmo Burbuja:

Imagen para 5000 elementos entre 0 y 10:

Algoritmo Inserción:

Imagen para 50 elementos entre 0 y 100:


Imagen para 560000 elementos entre 0 y 10:

En esta imagen se aprecia que para valores


de gran valor el programa se finaliza de
forma inesperada.

Algoritmo QuickSort:

Imagen para 70000 elementos entre 0 y 10:

Algoritmo MergeSort:

Imagen para 180000 elementos entre 0 y 10:


R/ta: el algoritmo más fácil de implementar en
este taller, fue el algoritmo de ordenamiento
En esta imagen se observa que la ejecución burbuja, ya que su código solo cuenta con dos
finalizo porque es una cantidad de gran ciclos “for” que nos permite realizar el
valor ordenamiento del arreglo.

b. ¿Cuál algoritmo a la luz de las pruebas


realizadas en más eficiente?

R/ta: De acuerdo a las pruebas realizadas, se


observó que el algoritmo más eficiente en
cuanto a menor tiempo de ejecución, es el
algoritmo de ordenamiento quicksort, ya que
sus tiempos de ejecución son mucho menores
en comparación a los otros algoritmos de
ordenamientos tratados en el desarrollo de
este taller, tiempos que se encuentran
consignados en las tablas de tiempos en el
contenido de este informe. Esto teniendo en
cuenta que el código implementado para
Imagen para 50 elementos entre 0 y 100: QuickSort es mucho más elaborado y más
complejo.

c. ¿Cuál algoritmo a la luz de las pruebas


realizadas es el menos eficiente?

R/ta: De acuerdo a las pruebas realizadas, el


algoritmo menos eficiente, en cuento a que su
tiempo de ejecución es mucho mayor a
comparación de los otros algoritmos
implementados, es el algoritmo Burbuja, ya
que sus tiempos de ejecución sobrepasan en
comparación a los tiempos de ejecución de los
demás algoritmos de ordenamiento
implementados. (Observar tablas de tiempos
de ejecución), esto debido a que su código No
es tan complejo y elaborado, en comparación
al algoritmo de ordenamiento QuickSort.

d. ¿Qué recomendaciones harían a las nuevas


personas para realizar esta práctica?

R/ta: Recomendaciones para esta práctica:

 Al momento de implementar el
código de generación de números
aleatorios, se debe prestar demasiada
atención al momento de cargar el
arreglo con estos números generados,
ya que nosotros al momento de
Respuesta a las preguntas planteadas realizar este paso, no creábamos el
en el taller: arreglo antes de generar los números
aleatorios, si no después, por tal
a. ¿Cuál algoritmo fue más fácil de motivo se presentaban
implementar? inconsistencias al momento de
ejecutar el algoritmo de
ordenamiento.
 Al ejecutar cantidades de gran valor
como 4000000, la ejecución se
finalizaba arrojando el código d salida
32221225725, que de acuerdo a lo
indicado por nuestro docente, se debe
a que los arreglos implementados en
nuestro código, son arreglos estáticos,
por tal motivo para realizar la
ejecución de estas cantidades de gran
valor se debe usar arreglos dinámicos,
llamados punteros.

8.Adicionalmente, mencionar que dificultades


presentaron para realizar esta práctica. La
práctica la pueden realizar en grupos de 2
personas (Una persona sustenta el trabajo
realizado)

R/ta: En la realización de la práctica, las


principales dificultades, se presentaron al
momento de implementar los códigos de los
algoritmos de ordenamiento, principalmente
en el algoritmo de ordenamiento QuickSort y
MergeSort, dado que sus códigos son
complejos y un poco enredados de entender.

Otra de las dificultades que se presentaron en


el desarrollo del taller, fue el de generar una
función para cada parte importante del código,
ya que nosotros implementamos una función
para la parte de ordenamiento, captura de
datos, Visualización de datos, generación de
datos.

Una dificultad que se nos presentó en el


desarrollo del taller fue la falta de tiempo, ya
que, al momento de realizar las pruebas con
los valores especificado en el taller, esta
demoraba mucho por tal motivo No fue
posible realizar en su totalidad todas las
pruebas con los números de gran valor.

ANEXOS

 Al Presente informe se anexan los


códigos (archivo .cpp)
implementados en el IDE zinjai, de
cada algoritmo de ordenamiento.
 Se anexa archivo Excel donde se
encuentran las tablas, en las cuales se
consignaron los tiempos para cada
prueba.

También podría gustarte