Data Structures 2
TeX

Data Structures 2

Academisch project voor Data Structuren II. Benchmark vijf sorteeralgoritmen in C over meerdere invoergroottes en genereert vervolgens prestatiegrafieken via Python/matplotlib.

Academisch project voor Datastructuren II. Benchmark vijf sorteeralgoritmen in C over meerdere invoergroottes, en genereert vervolgens prestatiegrafieken via Python/matplotlib.

Rapport gegenereerd door de Python-code die de resultaten van de algoritmen beschrijft.

Algoritmen

Algoritme Gemiddeld geval Slechtste geval
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)

Hoe Het Werkt

  1. C-programma (main.c + sorting.c) genereert willekeurige integer-arrays bij groottes [100, 1000, 5000, 10000, 50000, 100000], voert elk algoritme uit op een kopie, en schrijft per-run statistieken (wisselingen, vergelijkingen, verstreken tijd) naar binaire bestanden onder ./executions/.
  2. Python-script (main.py) compileert en voert het C-programma uit, leest de binaire gegevens, en slaat prestatiegrafieken op in ./graficos/.

Vereisten

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

Gebruik

# Benchmark uitvoeren + grafieken genereren
python main.py

Of alleen de C-benchmark uitvoeren:

make
./Trabalho_Pratico_II

Uitvoer

Grafieken opgeslagen in ./graficos/:

  • relatorio_completo.png — wisselingen, vergelijkingen en tijd in één figuur
  • trocas_comparacao.png — wisselingen per algoritme
  • comparacoes_comparacao.png — vergelijkingen per algoritme
  • tempo_comparacao.png — uitvoeringstijd per algoritme

Projectstructuur

.
├── main.c          # Benchmark-stuurprogramma
├── sorting.c       # Algoritme-implementaties
├── sorting.h       # Functiedeclaraties
├── main.py         # Gegevenslezer + grafiekengenerator
├── makefile
├── requirements.txt
└── executions/     # Binaire resultaatbestanden (aangemaakt tijdens uitvoering)