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.

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
- 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/. - 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 graficotrocas_comparacao.png— scambi per algoritmocomparacoes_comparacao.png— confronti per algoritmotempo_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)
