TeX
Data Structures 2
Proyecto académico para Estructuras de Datos II. Evalúa cinco algoritmos de ordenamiento en C en múltiples tamaños de entrada, luego genera gráficos de rendimiento mediante Python/matplotlib.
Projeto acadêmico para Estruturas de Dados II. Avalia cinco algoritmos de ordenação em C em múltiplos tamanhos de entrada e gera gráficos de desempenho via Python/matplotlib.

Algoritmos
| Algoritmo | Caso Médio | Pior Caso |
|---|---|---|
| Bubble Sort | O(n²) | O(n²) |
| Selection Sort | O(n²) | O(n²) |
| Insertion Sort | O(n²) | O(n²) |
| Quick Sort | O(n log n) | O(n²) |
| Heap Sort | O(n log n) | O(n log n) |
Como Funciona
- Programa em C (
main.c+sorting.c) gera arrays de inteiros aleatórios nos tamanhos[100, 1000, 5000, 10000, 50000, 100000], executa cada algoritmo em uma cópia e escreve métricas por execução (trocas, comparações, tempo decorrido) em arquivos binários em./executions/. - Script Python (
main.py) compila e executa o programa C, lê os dados binários e salva gráficos de desempenho em./graficos/.
Requisitos
- GCC
- Python 3
- matplotlib (
pip install matplotlib)
Uso
# Executar benchmark + gerar gráficos
python main.py
Ou executar 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 do benchmark
├── sorting.c # Implementações dos algoritmos
├── sorting.h # Declarações das 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)
