算法时间复杂度的实验测试
(1)实验目的
运用编程工具测试算法(堆排序或快速排序)的时间复杂度,学会如何分析一个算法的时
间复杂度;
(2)实验
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
对于一个算法(可以选择排序算法,如堆排序和插入排序),测试该算法在不同输入规
模下的时间复杂度;
(3)实验
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
以排序算法为例,测试算法的时间复杂度.
(4)实验步骤
a) 用插入排序编出程序
b) 用堆排序编出程序
c) 用不同的数据测试程序
本次测试使用的是1~n的n个数的倒排序作为测试数据
插入排n 堆排序 Nlgn*2.5/20000 n^2*1.6/100000 序
100 0 0.025 0 0.16 500 0 0.16868562527 0 4 1000 0 0.375 16 16 2000 0 0.82525749892 47 64 5000 0 2.3118562527 312 400 7000 0 3.364460785 625 784 10000 0 5 1281 1600 15000 0 7.8301711107 2859 3600 20000 0 10.752574989 5063 6400 30000 15 16.789204705 11500 14400 40000 16 23.010299957 20578 25600 50000 15 29.368562527 32265 40000 60000 31 35.836134378 46656 57600 70000 31 42.39460785 63703 78400 80000 47 49.03089987 82953 102400 90000 47 55.735228231 105406 129600 100000 62 62.5 130187 160000
插入排序和堆排序的比较:
d) 在数据量较小的时候(<=15000),两种排序算法相差不大,但是当数据量增大时,
堆排序算法显示出了明显的优势。通过对曲线的观察,插入排序的曲线与n^2较为
接近,而堆排序则距离nlgn更接近。但是由于操作系统分时的原因,测出的曲线
略有偏差。试验成功。