Data Structures 2
TeX

Data Structures 2

Progetto accademico per Strutture Dati II. Confronta cinque algoritmi di ordinamento in C su più dimensioni di input, quindi genera grafici delle prestazioni tramite Python/matplotlib.

Progetto accademico per Strutture Dati II. Confronta cinque algoritmi di ordinamento in C su diverse dimensioni di input, quindi genera grafici delle prestazioni tramite Python/matplotlib.

Report generato dal codice Python che descrive i risultati degli algoritmi.

Algoritmi

Algoritmo Caso Medio Caso Peggiore
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)

Come Funziona

  1. Programma C (main.c + sorting.c) genera array di interi casuali di dimensioni [100, 1000, 5000, 10000, 50000, 100000], esegue ciascun algoritmo su una copia e scrive le metriche per esecuzione (scambi, confronti, tempo trascorso) in file binari nella cartella ./executions/.
  2. Script Python (main.py) compila ed esegue il programma C, legge i dati binari e salva i grafici delle prestazioni in ./graficos/.

Requisiti

  • GCC
  • Python 3
  • matplotlib (pip install matplotlib)

Utilizzo

# Esegui benchmark + genera grafici
python main.py

Oppure esegui solo il benchmark C:

make
./Trabalho_Pratico_II

Output

Grafici salvati in ./graficos/:

  • relatorio_completo.png — scambi, confronti e tempo in un unico grafico
  • trocas_comparacao.png — scambi per algoritmo
  • comparacoes_comparacao.png — confronti per algoritmo
  • tempo_comparacao.png — tempo di esecuzione per algoritmo

Struttura del Progetto

.
├── main.c          # Driver del benchmark
├── sorting.c       # Implementazioni degli algoritmi
├── sorting.h       # Dichiarazioni delle funzioni
├── main.py         # Lettore dati + generatore grafici
├── makefile
├── requirements.txt
└── executions/     # File binari dei risultati (generati a runtime)