/Shenzhen-University-Algorithm-Sorting-and-TopK

2023深圳大学算法分析与设计Homework1——排序与TopK问题

Primary LanguageC++

2023深圳大学算法分析与设计Homework1——排序与TopK问题

问题重述:

  1. 实现选择排序、冒泡排序、合并排序、快速排序、插入排序算法。
  2. 以待排序数组的大小n为输入规模,固定n,随机产生20组测试样本,统计不同排序算法在20个样本上的平均运行时间。
  3. 分别以n=10万, n=20万, n=30万, n=40万, n=50万等等,重复2的实验,画出不同排序算法在20个随机样本的平均运行时间与输入规模n的关系,如下图1所示,注意横坐标要均匀。
  4. 画出理论效率分析的曲线和实测的效率曲线,注意:由于实测效率是运行时间,而理论效率是基本操作的执行次数,两者需要进行对应关系调整。调整思路:以输入规模为10000的数据运行时间为基准点,计算输入规模为其他值的理论运行时间,画出不同规模数据的理论运行时间曲线,并与实测的效率曲线进行比较。经验分析与理论分析是否一致?如果不一致,请解释存在的原因。
  5. 现在有10亿的数据(每个数据四个字节),请快速挑选出最大的十个数,并在小规模数据上验证算法的正确性。