Vous êtes sur la page 1sur 3

Medicin experimental de tiempos de

ejecucin en programas mediante los mtodos


Quicksort y Burbuja.
Denis Romasanta Rodrguez.

1.

Introduccin

A continuacin se proceder a la comparacin de dos algoritmos de organizacin de vectores,


el quicksort y el burbuja. Para poder compararlos se proceder a rellenar vectores de diferentes
tamaos con nmeros aleatorios y se medir cuanto tiempo tarda cada algoritmo en ordenarlos.
Para el desarrollo de la prctica se utiliza el TAD vectorDinamico desarrollado previamente
para implementar los vectores a utilizar. Dado que en esta prctica para realizar el ordenamiento
del vector se requiere intercambiar las posiciones del mismo se le ha aadido la funcionalidad
swap. La implementacin se puede consultar en vectorDinamico.c y la definicin de los mtodos
en vectorDinamico.h.
El algoritmo quicksort se implementa en quicksort.c y sus mtodos se definen en quicksort.h
mientras que al algoritmo burbuja se implementa en burbuja.c y sus mtodos se definen en
burbuja.h.
Para realizar las pruebas pertinentes se ha desarrollado el fichero main.c, en este fichero que
hace uso del software mencionado anteriormente se permite al usuario elegir el tamao inicial
del vector, el paso y el tamao final del vector a utilizar as como el algoritmo con el que se
desea realizar el ordenamiento. La ejecucin de este programa dar como resultado un fichero
.xls con los resultados de la ejecucin, en la primera columna de dicho fichero se muestran los
tamaos del vector utilizados y en la segunda los tiempos empleados.

2.

Interpretacin de resultados

En primer lugar y con objeto de comparar ambos algoritmos se realiz un experimento con
idnticos tamaos de vector para ambos, los resultados obtenidos se muestran a continuacin:
Tabla 1 Comparacin Algoritmos

Tamao Vector tQuickSort(s)


10000
0.0035
20000
0.0076
30000
0.0114
40000
0.0167
50000
0.0217
60000
0.0251
70000
0.0299
80000
0.0346
90000
0.04
100000
0.0437
Tiempo total(s)
0.2342

tBurbuja(s)
1.1975
4.7905
11.0503
19.3767
30.3547
44.2785
59.3926
78.1016
97.4903
120.4876
466.5203

Tiempo (s)

Algoritmo Quicksort 1
0,05
0,045
0,04
0,035
0,03
0,025
0,02
0,015
0,01
0,005
0
0

20000

40000

60000

80000

100000

120000

Tamao vector

Grfica 1 Algoritmo Quicksort 1 Tamaos inicial 1000; final 100000; Paso 10000

Algoritmo Burbuja 1
140
120

Tiempo

100
80
60
40
20
0
0

20000

40000

60000

80000

100000

120000

Tamao del vector


Grfica 2 Algoritmo Burbuja 1 Tamaos inicial 1000; final 100000; Paso 10000

De los resultados anteriores se concluye que el algoritmo Quicksort es mucho ms eficiente


que el algoritmo burbuja, la diferencia de velocidad entre uno y otro se vuelve ms acusada
conforme aumenta el tamao del vector, esto entra dentro de lo esperado dado que el algoritmo
Quicksort tiene un orden superlineal n log (n) tal y como se aprecia en la grfica 1 mientras
que el algoritmo Burbuja tiene un orden cuadrtico n2, mostrado en la grfica 2.
La diferencia entre ambos algoritmos en tiempo total empleado resulta muy significativa, 0,23
segundos el quicksort mientras que el burbuja necesita 7,76 minutos para ordenar los mismos
vectores.
Analizando los resultados en detalle partir de un tamao de vector superior a 20.000 el
algoritmo de burbuja necesita ms de 5 segundos para realizar la ordenacin, un tiempo
considerable, sin embargo el algoritmo quicksort no requiere ni medio segundo para ordenar
vectores de tamao 100000.

Normas de formato de documentos

Con el objetivo de probar los lmites del algoritmo quicksort se realizar el siguiente
experimento con valores del vector entre 0 y 2107 y paso de 5105, los resultados se muestran
en la siguiente grfica.

Algoritmo Quicksort 2
14

12

Tiempo(s)

10
8

6
4
2
0
0

2500000

5000000

7500000 10000000 12500000 15000000 17500000 20000000

Tamao vector
Grfica 3 Quicksort 2 Tamao inicial 0 ; Final 2107 ; y paso 5105.

Para conseguir un tiempo de 5 segundos el algoritmo quicksort requiere tamaos de vector de


en torno a 7,5106 frente al tamao 20.000 requerido por el burbuja.
En conclusin dado el crecimiento superlineal del algoritmo quicksort frente al algoritmo
burbuja este permite manejar tamaos mucho ms elevados.

2.1. PREGUNTAS Y RESPUESTAS


1. Qu tamaos de vectores son gestionables en tiempo razonable por cada
algoritmo?
Considerando 5 segundos un tiempo razonable el algoritmo quicksort permite manejar
tamaos de alrededor de 7,5106 mientras que el burbuja se queda en tamaos de 20.000.

2. Es ms eficiente en general alguna de las dos implementaciones? En caso


afirmativo, indica si es as para todos los valores de n o nicamente
para algunos. En este ltimo caso, indica el rango de valores de n para
los que es preferible cada implementacin.
El algoritmo quicksort es mucho ms eficiente que el algoritmo burbuja para cualquier valor de
n dado su orden superlineal frente al orden cuadrtico del burbuja.

Vous aimerez peut-être aussi