Data Structures 2
TeX

Data Structures 2

数据结构II的学术项目。用C语言对五种排序算法在多种输入规模下进行基准测试,然后通过Python/matplotlib生成性能图表。

数据结构II课程学术项目。使用C语言对五种排序算法在多种输入规模下进行基准测试,并通过Python/matplotlib生成性能图表。

Python代码生成的算法结果报告

算法

算法 平均情况 最坏情况
冒泡排序 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)

工作原理

  1. C程序main.c + sorting.c)生成规模为[100, 1000, 5000, 10000, 50000, 100000]的随机整数数组,对每个数组副本运行各算法,并将每次运行的指标(交换次数、比较次数、耗时)写入./executions/目录下的二进制文件。
  2. 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/     # 二进制结果文件(运行时生成)