数据结构II课程学术项目。使用C语言对五种排序算法在多种输入规模下进行基准测试,并通过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— 交换次数、比较次数和耗时整合图trocas_comparacao.png— 各算法交换次数对比图comparacoes_comparacao.png— 各算法比较次数对比图tempo_comparacao.png— 各算法执行时间对比图
项目结构
.
├── main.c # 基准测试驱动
├── sorting.c # 算法实现
├── sorting.h # 函数声明
├── main.py # 数据读取器 + 图表生成器
├── makefile
├── requirements.txt
└── executions/ # 二进制结果文件(运行时生成)
