medición experimental de tiempos de ejecución en programas mediante los métodos quicksort y...

Upload: notanumber111

Post on 01-Mar-2016

216 views

Category:

Documents


0 download

DESCRIPTION

Caracterización de la medición de tiempos de ejecución según diferentes algortimos de ordenación, burbuja y quicksort.

TRANSCRIPT

  • 1

    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) tBurbuja(s)

    10000 0.0035 1.1975

    20000 0.0076 4.7905

    30000 0.0114 11.0503

    40000 0.0167 19.3767

    50000 0.0217 30.3547

    60000 0.0251 44.2785

    70000 0.0299 59.3926

    80000 0.0346 78.1016

    90000 0.04 97.4903

    100000 0.0437 120.4876

    Tiempo total(s) 0.2342 466.5203

  • 2

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

    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.

    0

    0,005

    0,01

    0,015

    0,02

    0,025

    0,03

    0,035

    0,04

    0,045

    0,05

    0 20000 40000 60000 80000 100000 120000

    Tie

    mp

    o (

    s)

    Tamao vector

    Algoritmo Quicksort 1

    0

    20

    40

    60

    80

    100

    120

    140

    0 20000 40000 60000 80000 100000 120000

    Tie

    mp

    o

    Tamao del vector

    Algoritmo Burbuja 1

  • Normas de formato de documentos

    3

    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.

    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.

    0

    2

    4

    6

    8

    10

    12

    14

    0 2500000 5000000 7500000 10000000 12500000 15000000 17500000 20000000

    Tie

    mp

    o(s

    )

    Tamao vector

    Algoritmo Quicksort 2