TeX
Data Structures 2
Projeto acadêmico para a disciplina Estruturas de Dados II. Realiza testes comparativos de cinco algoritmos de classificação em C com vários tamanhos de entrada e, em seguida, gera gráficos de desempenho usando Python/matplotlib.
Projeto acadêmico para a disciplina Estruturas de Dados II. Realiza benchmarks de cinco algoritmos de classificação em C com vários tamanhos de entrada e, em seguida, gera gráficos de desempenho usando Python/matplotlib.

Algoritmos
| Algoritmo | Caso Médio | Caso Pior |
|---|---|---|
| Classificação por Bolhas | O(n²) | O(n²) |
| Classificação por Seleção | O(n²) | O(n²) |
| Classificação por Inserção | O(n²) | O(n²) |
| Classificação Rápida | O(n log n) | O(n²) |
| Classificação por Heap | O(n log n) | O(n log n) |
Como funciona
- Programa em C (
main.c+sorting.c) gera matrizes de inteiros aleatórios nos tamanhos[100, 1000, 5000, 10000, 50000, 100000], executa cada algoritmo em uma cópia e grava métricas por execução (trocas, comparações, tempo decorrido) em arquivos binários na pasta./executions/. - Script Python (
main.py) compila e executa o programa em C, lê os dados binários e salva gráficos de desempenho na pasta./graficos/.
Requisitos
- GCC
- Python 3
- matplotlib (
pip install matplotlib)
Utilização
# Executar benchmark + gerar gráficos
python main.py
Ou execute apenas o benchmark em C:
make
./Trabalho_Pratico_II
Saída
Gráficos salvos em ./graficos/:
relatorio_completo.png— trocas, comparações e tempo em uma única figuratrocas_comparacao.png— trocas por algoritmocomparacoes_comparacao.png— comparações por algoritmotempo_comparacao.png— tempo de execução por algoritmo
Estrutura do projeto
.
├── main.c # Driver de benchmark
├── sorting.c # Implementações de algoritmos
├── sorting.h # Declarações de funções
├── main.py # Leitor de dados + gerador de gráficos
├── makefile
├── requirements.txt
└── executions/ # Arquivos binários de resultados (gerados em tempo de execução)
