算法分析求最大公约数-软件工程-13083511-周成(3)

2019-03-22 19:42

}

i++;

finish=clock(); usetime= finish-start;

printf(\方法三用时%.f*10^(-6) 豪秒\\n\ usetime);

}}五、实验过程原始记录( 测试数据、图表、计算等)

三种算法得到结果验证结果:

计数器:做一次循环就加一

计算算法运行时间结果:在计算时间过程中因为计算机的运算速度很快,所以利用了循环把时间精确得到10毫秒

-6

六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)

在本次实验中代码是独自完成的,一开始我感觉这个代码最多半小时就可以完成,但是第三个算法

-11-

的时候我分析了好久才写出来,在计算三种方法运行时间的时候,我一开始只精确到毫秒(ms),计算结果都是零,后面我写了一个循环调试才发现是我的精确度还在不够,所以我想到了计算算法执行了1000000次之后所用的时间,然后再求平均每次执行的时间。

结果分析:从前面的复杂度O(n)的出欧几里得算法的是最优算法,连续整除法其次,最复杂的是分解质因数算法,再从代码运行的计数器和计算的时间来看结果恰好和前面的复杂度得到的结果一致,所以的出结论:欧几里得算法最优。

从这次实验的结果我了解到了算法的优与劣的差别,虽然得到的是同样的结果,但是需要的时间和资源却相差很大,这提示我们在以后写算法的时候要找出最优算法。可见算法分析与设计课程的对计编程的人来说是多么的重要,在以后写程序过程中要时刻提醒自己找最优算法,当然得先学会O(n)的分析。

-12-


算法分析求最大公约数-软件工程-13083511-周成(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:七牌二图

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: