Data Structures 2
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.

Relatório gerado pelo código Python descrevendo o resultado dos algoritmos.

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

  1. 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/.
  2. 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 figura
  • trocas_comparacao.png — trocas por algoritmo
  • comparacoes_comparacao.png — comparações por algoritmo
  • tempo_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)