TeX
Data Structures 2
データ構造IIの学術プロジェクト。C言語で5つのソートアルゴリズムを複数の入力サイズでベンチマークし、Python/matplotlibでパフォーマンスチャートを生成します。
データ構造IIの学術プロジェクト。C言語で5つのソートアルゴリズムを複数の入力サイズに対してベンチマークし、Python/matplotlibでパフォーマンスチャートを生成します。

アルゴリズム
| アルゴリズム | 平均ケース | 最悪ケース |
|---|---|---|
| バブルソート | O(n²) | O(n²) |
| 選択ソート | O(n²) | O(n²) |
| 挿入ソート | O(n²) | O(n²) |
| クイックソート | O(n log n) | O(n²) |
| ヒープソート | O(n log n) | O(n log n) |
仕組み
- Cプログラム(
main.c+sorting.c)がサイズ[100, 1000, 5000, 10000, 50000, 100000]のランダムな整数配列を生成し、各アルゴリズムをコピーに対して実行し、実行ごとのメトリクス(交換回数、比較回数、経過時間)を./executions/下のバイナリファイルに書き込みます。 - Pythonスクリプト(
main.py)がCプログラムをコンパイルして実行し、バイナリデータを読み取り、パフォーマンスチャートを./graficos/に保存します。
必要条件
- GCC
- Python 3
- matplotlib(
pip install matplotlib)
使用方法
# ベンチマーク実行+チャート生成
python main.py
またはCベンチマークのみを実行:
make
./Trabalho_Pratico_II
出力
チャートは./graficos/に保存されます:
relatorio_completo.png— 交換回数、比較回数、時間を1つの図に表示trocas_comparacao.png— アルゴリズムごとの交換回数comparacoes_comparacao.png— アルゴリズムごとの比較回数tempo_comparacao.png— アルゴリズムごとの実行時間
プロジェクト構成
.
├── main.c # ベンチマークドライバ
├── sorting.c # アルゴリズムの実装
├── sorting.h # 関数宣言
├── main.py # データリーダー+チャート生成
├── makefile
├── requirements.txt
└── executions/ # バイナリ結果ファイル(実行時に生成)
