---
# System prepended metadata

title: "\n\t\tAnálise sobre desempenho de algoritmos de ordenação\n\t"
tags: [Lab_ICC_II]

---

---
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.