TeX
Data Structures 2
Projet universitaire pour le cours « Structures de données II ». Comparaison des performances de cinq algorithmes de tri en C pour différentes tailles d'entrée, puis création de graphiques de performances à l'aide de Python/matplotlib.
Projet universitaire pour le cours « Structures de données II ». Évalue cinq algorithmes de tri en C pour différentes tailles d'entrée, puis génère des graphiques de performance à l'aide de Python/matplotlib.

Algorithmes
| Algorithme | Cas moyen | Cas le plus défavorable |
|---|---|---|
| Tri à bulles | O(n²) | O(n²) |
| Tri par sélection | O(n²) | O(n²) |
| Tri par insertion | O(n²) | O(n²) |
| Tri rapide | O(n log n) | O(n²) |
| Tri par tas | O(n log n) | O(n log n) |
Fonctionnement
- Le programme C (
main.c+sorting.c) génère des tableaux d'entiers aléatoires de tailles[100, 1000, 5000, 10000, 50000, 100000], exécute chaque algorithme sur une copie et enregistre les métriques par exécution (échanges, comparaisons, temps écoulé) dans des fichiers binaires sous./executions/. - Le script Python (
main.py) compile et exécute le programme C, lit les données binaires et enregistre les graphiques de performances dans./graficos/.
Configuration requise
- GCC
- Python 3
- matplotlib (
pip install matplotlib)
Utilisation
# Exécuter le benchmark + générer les graphiques
python main.py
Ou exécuter uniquement le benchmark C :
make
./Trabalho_Pratico_II
Résultats
Graphiques enregistrés dans ./graficos/ :
relatorio_completo.png— permutations, comparaisons et temps dans un seul graphiquetrocas_comparacao.png— permutations par algorithmecomparacoes_comparacao.png— comparaisons par algorithmetempo_comparacao.png— temps d'exécution par algorithme
Structure du projet
.
├── main.c # Pilote de benchmark
├── sorting.c # Implémentations des algorithmes
├── sorting.h # Déclarations de fonctions
├── main.py # Lecteur de données + générateur de graphiques
├── makefile
├── requirements.txt
└── executions/ # Fichiers binaires de résultats (générés lors de l'exécution)
