Documente Academic
Documente Profesional
Documente Cultură
700000
Insertion Sort
600000 Selection Sort
Bubble Sort
500000 Shell Sort
Heap Sort
400000 Merge Sort
Quicksort
300000 n
n lg n
200000
100000
0
10 100 1000 10000 100000 1000000
Estes resultados foram plotados em um grfico para uma melhor anlise. Podemos
perceber a diferena enorme de desempenho dos primeiros trs algoritmos (Insertion
Sort, Selection Sort e Bubble Sort) para os outros, quando o tamanho da entrada cresce
bastante. Percebe-se o quanto o grfico dos trs primeiros algoritmos cresce muito mais
com a entrada dos que os outros. Isto se deve as suas complexidades assintticas, que
so O(n2 ) no pior caso. Diferente dos demais algoritmos, que so O(n log 2 (n)) , onde
n o tamanho da entrada.
Para uma melhor visualizao, o grfico a seguir est com o eixo Y (tempo de execuo
em milissegundos) em escala logartmica. Assim podemos ver melhor as linhas e
perceber a semelhana do crescimento das linhas dos algoritmos e das funes de suas
complexidades assintticas.
100000000
Insertion Sort
1000000 Selection Sort
Bubble Sort
Shell Sort
10000
Heap Sort
Merge Sort
100 Quicksort
n
1 n lg n
0,01
0
10 100 1000 10000 100000 1000000
Em verde limo, est a funo n2 para comparao com o Insertion Sort (azul escuro),
Selection Sort (laranja) e Bubble Sort (amarelo). Percebe-se que crescem de maneira
semelhante e que a funo n2 limita-os superiormente. J os algoritmos mais eficientes,
Shell Sort (verde escuro), Heap Sort (marrom), Merge Sort (azul claro) e Quicksort (verde
escuro) esto bem mais abaixo no grfico, e pode-se perceber que tambm crescem de
forma semelhante ao seu limitante superior assinttica, a funo n log 2 (n) (roxo).
Para tamanho de entrada menores, como 100, a diferena de tempo no grande, como
era de se esperar, j que esses algoritmos vo realmente tender ao sua complexidade
assinttica para valores grandes de entrada, como visto em sala de aula e nos
experimentos.