Data Structures 2
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.

Vom Python-Code erstellter Bericht, der die Ergebnisse der Algorithmen beschreibt.

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

  1. 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/.
  2. 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 Abbildung
  • trocas_comparacao.png — Vertauschungen pro Algorithmus
  • comparacoes_comparacao.png — Vergleiche pro Algorithmus
  • tempo_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)