TeX
Data Structures 2
Akademisches Projekt für Datenstrukturen II. Benchmarking von fünf Sortieralgorithmen in C über mehrere Eingabegrößen hinweg, dann Erstellung von Leistungsdiagrammen mittels Python/matplotlib.
Akademisches Projekt für Datenstrukturen II. Benchmarket fünf Sortieralgorithmen in C über mehrere Eingabegrößen hinweg und erstellt anschließend Leistungsdiagramme mittels Python/matplotlib.

Algorithmen
| Algorithmus | Durchschnittlicher Fall | Schlechtester Fall |
|---|---|---|
| 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) |
Funktionsweise
- C-Programm (
main.c+sorting.c) generiert zufällige Integer-Arrays der Größen[100, 1000, 5000, 10000, 50000, 100000], führt jeden Algorithmus auf einer Kopie aus und schreibt pro-Lauf-Metriken (Vertauschungen, Vergleiche, verstrichene Zeit) in Binärdateien unter./executions/. - Python-Skript (
main.py) kompiliert und führt das C-Programm aus, liest die Binärdaten und speichert Leistungsdiagramme unter./graficos/.
Voraussetzungen
- GCC
- Python 3
- matplotlib (
pip install matplotlib)
Verwendung
# Benchmark ausführen + Diagramme erstellen
python main.py
Oder nur den C-Benchmark ausführen:
make
./Trabalho_Pratico_II
Ausgabe
Diagramme gespeichert unter ./graficos/:
relatorio_completo.png— Vertauschungen, Vergleiche und Zeit in einer Abbildungtrocas_comparacao.png— Vertauschungen pro Algorithmuscomparacoes_comparacao.png— Vergleiche pro Algorithmustempo_comparacao.png— Ausführungszeit pro Algorithmus
Projektstruktur
.
├── main.c # Benchmark-Treiber
├── sorting.c # Algorithmus-Implementierungen
├── sorting.h # Funktionsdeklarationen
├── main.py # Datenleser + Diagrammersteller
├── makefile
├── requirements.txt
└── executions/ # Binäre Ergebnisdateien (zur Laufzeit erzeugt)
