--- tags: Lab_ICC_II --- <center> <h3> Universidade de São Paulo (USP)<br> Instituto de Ciências Matemáticas e de Computação (ICMC)<br> </h3> <h3> Bacharelado de Ciências de Computação<br> Disciplina: Laboratório de Introdução à Ciência da Computação II<br> Professor: Leonardo Pereira<br><br> Aluno: Guilherme Machado Rios (11222839) </h3> <h1> Análise sobre desempenho de algoritmos de ordenação </h1> </center> ## Introdução Será feita a análise de desempenho/comparção dos algortimos de ordenação bubble sort, insertion sort, e merge sort. ## Bubble Sort [![3hdZ8B.md.png](https://iili.io/3hdZ8B.md.png)](https://freeimage.host/i/3hdZ8B) Como podemos observar, o gráfico tem comportamento exponecial; uma vez que o bubble sort tem complexidade ***O(n²)***. Um dos algoritmos mais simples de ordenação, que pelos seus loops concatenados acaba sendo custoso para ***n*** muito grandes. ## Insertion Sort [![3hdtyP.md.png](https://iili.io/3hdtyP.md.png)](https://freeimage.host/i/3hdtyP) Como podemos observar, assim como no exemplo anterior, o gráfico tem comportamento exponecial; uma vez que o insertion sort também tem complexidade ***O(n²)***. Outro algoritmo simples de ordenação, que acaba sendo muito custoso em casos onde o ***n*** é muito grande. ## Merge Sort [![3hJ4gp.md.png](https://iili.io/3hJ4gp.md.png)](https://freeimage.host/i/3hJ4gp) Como podemos observar, o comportamento desse gráfico se mostrou como esperado; uma vez que o merge sort tem complexidade ***O(n\*log(n))***. Um algoritmo mais otimizado quando comparado aos demais pelo seu método de ***divisão e conquista***. ## Comparação Os dois primeiros algoritmos se mostraram bem parecidos, algo esperado já que suas implementações são bem similares. O terceiro método se distinguiu, dado sua grande diferença com relação a implementação.