- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品文档
精品文档
PAGE
PAGE7
精品文档
PAGE
v1.0 可编辑可修改
昆明理工大学信息工程与自动化学院学生实验报告
(2011 —2012 学年第1 学期)
课程名称:算法设计与分析 开课实验室:信自楼机房 4442011 年10月12日
年级、专业、班 计科092 学号 5214 姓名 徐兴繁 成绩
实验项目名称 求最大公约数 指导教师 吴晟
教
师
评
语
该同学是否了解实验原理:
A.了解□
B.基本了解□
C.不了解□
该同学的实验能力:
A.强□
B.中等
□
C.差□
该同学的实验是否达到要求:
A.达到□
B.基本达到□
C.未达到□
实验报告是否规范:
A.规范□
B.基本规范□
C.不规范□
实验过程是否详细记录:
A.详细□
B.一般
□
C.没有□
教师签名:
年 月 日
一、上机目的及内容
上机内容
求两个自然数 m和n的最大公约数。
上机目的
1)复习数据结构课程的相关知识,实现课程间的平滑过渡;
2)掌握并应用算法的数学分析和后验分析方法;
3)理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。
二、实验原理及基本技术路线图(方框原理图或程序流程图)
1)至少设计出三个版本的求最大公约数算法;
2)对所设计的算法采用大O符号进行时间复杂性分析;
3)上机实现算法,并用计数法和计时法分别测算算法的运行时间;
4)通过分析对比,得出自己的结论。
1-1-
v1.0 可编辑可修改
三、所用仪器、材料(设备名称、型号、规格等或使用软件)
1台PC及VISUALC++软件
四、实验方法、步骤(或:程序代码或操作过程)
实验采用三种方法求最大公约数
1、连续整数检测法。
2、欧几里得算法
3、分解质因数算法
根据实现提示写代码并分析代码的时间复杂度:
方法一:
intf1(intm,intn)
{
intt;
if(mn)t=n;
elset=m;
while(t)
{
if(m%t==0n%t==0)break;
elset=t-1;
}
returnt;
}
根据代码考虑最坏情况他们的最大公约数是 1,循环做了 t-1 次,最好情况是只做了 1次,可以得
出O(n)=n/2;
方法二:intf2(intm,intn)
{
2-2-
v1.0 可编辑可修改
intr;
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
returnn;
}
根据代码辗转相除得到欧几里得的 O(n)=log n
方法三:
intf3(intm,intn)
{
inti=2,j=0,h=0;
inta[N],b[N],c[N];
while(in)
{
if(n%i==0)
{
j++;
a[j]=i;
n=n/i;
}
elsei++;
}
3-3-
v1.0 可编辑可修改
j++;
a[j]=n;
i=1;
intu;
u=j;
while(i=j)
{
*10^(-6) 豪秒\n, usetime);
i=0;
start=clock();
while(i1000000)
{
f2(m,n);
i++;
}
finish=clock();
usetime=finish-start;
printf( 方法二用时%.f*10^(-6) 豪秒\n, usetime);
i=0;
start=clock();
while(i1000000)
{
f3(m,n);
i++;
4-4-
v1.0 可编辑可修改
}
finish=clock();
usetime=finish-start;
printf( 方法三用时%.f*10^(-6) 豪秒\n, usetime);
}
五、实验过程原始记录 (测试数据、图表、计算等 )
请给出各个操作步骤的截图和说明;
三种算法得到结果验证结果:
计数器:我想到的是做一次循环就加一
计算算法运行时间结果:在计算时间过程中因为计算机的运算速度很快,所以我利用了循环把时间精确得到10-6毫秒
5-5-
v1.0 可编辑可修改
六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)
请结合实验的结果分析算法原理;在实验中遇到了些什么问题,如何解决;有什么收获等;
在本次实验中代码是独自完成的,一开始我感觉这个代码最多半小时就可以完成,但是第三个算法
的时候我分析了好久才写出来, 在计算三种方法运行时间的时候, 我一开始只精确到毫秒( ms),计算结
果都是零,后面我写了一个循环调试才发现是我的精确度还在不够,所以我想到了计算算法执行了
1000000次之后所用的时间,然后再求平均每次执行的时间。
结果分析:从前面的复杂度 O(n)的出欧几里得算
您可能关注的文档
最近下载
- 教科版(2024)小学科学一年级上册(全册)教案及反思(含目录) .pdf VIP
- 2025年辽宁省初中学业水平考试(锦州市卷)中考英语试题含解析答案.pdf VIP
- 土建工程与基础 13次课第4章地基与基础第一节 土物理性质及工程分类.ppt VIP
- 科学技术是第一生产力创新思想.doc VIP
- JFE++Super-OLAC、HOP、E-WEL.ppt VIP
- 土建工程与基础课件 14次课 4.2 地基中的应力与变形.ppt VIP
- 第5课 美丽河山我们的家 课件 人民版中华民族大家庭.ppt
- 土建工程与基础课件 15次课 第4章 地基与基础 第3节 基础设计.ppt VIP
- 土建工程与基础课件10-1第3章3.6钢筋混凝土构件的裂缝和变形.ppt VIP
- 土建工程与基础课件10-23.7钢筋混凝土受压构件的计算.ppt VIP
文档评论(0)