- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(201 — 201 学年第1学期)
课程名称:算法设计与分析 开课实验室: 年 月 日
年级、专业、
班
学号
姓名
成绩
实验项目名称
求最大公约数
指导教师
教
该同学是否了解实验原理:
A. 了解口
B.基本了解口
C.不了解口
师
该同学的实验能力:
A.
强口
B.中等
□
C.差
□
该同学的实验是否达到要求:A.达到口
B.基本达到口
0.未达到口
评
实验报告是否规范:
A.规范口
B.基木规范口
C.不规范口
实验过程是否详细记录:
A.详细口
B. 一般
□
C.没有口
语
教师签名:
年
月
日
一、上机目的及内容
上机内容
求两个自然数m和n的最大公约数。
上机目的
(1) 复习数据结构课程的相关知识,实现课程间的平滑过渡;
(2) 掌握并应用算法的数学分析和后验分析方法;
(3) 理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同, 复杂程度不同,解题效率也不同。
二、实验原理及基本技术路线图(方框原理图或程序流程图)
(1)至少设计出三个版本的求最大公约数算法;
(2)对所设计的算法采用大0符号进行时间复杂性分析;
上机实现算法,并用计数法和计时法分别测算算法的运行时间;
通过分析对比,得出自己的结论。
本次实验求最大公约数设计了三种算法,方法一时间复杂度为:O(n/2);方法二时间复 杂度为:O(log n);方法三吋间复杂度为:O(n)。三种算法的结果是一样的,但执行I]寸间不 相同。
使用Microsoft Office Visio画出三种算法的流程图如下:
方法一:
方法二
V
x=m%t ?
Y
▼
y=n%t
return t
结束
结束
方法三:
三、所用仪器、材料(设备名称、型号、规格等或使用软件)
1 台 PC 及 VISUAL C++6.0 软件 四、实验方法、步骤(或:程序代码或操作过程)
方法一:
程序代码:
#include stdio.h
int min(int m,int n)
{
if(mn)
return m;
else
return n;
}
void main()
{
int m,n,t;
printf(Hmethod (1) \n);
printf(”请输入两个数:\『);
scanf(%d,%d,m,n);
t=min(m,n);
for(;t0;t-)
{
if( m%t==0 n%t==0 )
{
printf(H%d 和%d 的最大公约数为%d:\nn,m,n,t); break;
}
}
}
方法二
程序代码:
#include stdio.h
void main()
{
int m,n,r;
int a,b,temp;
printf(Hmethod (2) \nH);
printf(”请输入两个数:\n”);
scanf(n%d,%dH,m,n);
if(mn)
{
temp=m;
m=n;
n=temp;
}
a=m;
b=n;
r=m%n;
while(r!=O)
{
m=n;
n=r;
r=m%n;
}
printf(H%d 和%d 的最大公约数为%d:\n”,a,b,n);
}
方法三:
程序代码:
#includestdio.h
#define N 10
int a[N],b[N];
void divide(int t,int r[])
{
int i,j=0;
for(i=2;i=t;i++)
{
if(t%i==O)
{
t=t/i;
r[jl=i;
j=j+l;
i=i-l;
void main()
int m,n,i,j,k=0,p,c[N];
for(i=0;iN;i++)
a[i]=O;
b[i]=O;
c[il=O;
}
printf(method (3) \n); printf(”请输入两个数:\n“); scanf(”%d,%d”,m,n); divide(m,a);
divide(n,b);
for(i=0;i=N ;i++)
{
for(j=0;j=N;j++)
{
if(a[i]==b[j])
{
c[k]=b[j];
bUl=O;
k=k+l;
break;
}
}
}
for(i=0,p=l;iN;i++)
{
if(c[i]!=0)
P=P*c[i];
}
printf(%d 和%1 的最大公约数是:%d\n,m,n,p);
}
五、实验过程原始记录(测试数据、图表、计算等)
在三种方法中分別输入两个数求出最大公约数,以下为三种方法运行截图:
六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必 须用计算纸或程序运行结果、改进、收获)
这次实验设计了三种方法来求解最大公约数,虽然三种算法的最终结果是 相同的,但是它们的时间复杂度以及运行时间不相同。方法一时间
您可能关注的文档
最近下载
- 教你如何破解软件OD破解软件OD使用教程.doc VIP
- 施工重大危险源辨识与防控措施月报表.pdf VIP
- 人教版(部编版)小学语文五年级上册 圆明园的毁灭第二课时 名师教学PPT课件.pptx VIP
- 一体机-柯尼卡美能达-bizhubC220说明书.pdf VIP
- BS EN 60079-32-2-2015 国外国际规范.pdf VIP
- 急诊科患者转运途中突然病情变化应急预案.pptx VIP
- G30连云港至霍尔果斯高速景家口至清水驿段扩容改造报告书.pdf VIP
- 股骨粗隆间骨折护理查房——护理问题及措施与健康指导.ppt VIP
- 零星工程 投标方案(技术方案).docx
- 一种比色法检测金黄色葡萄球菌活菌的Cu-MOF材料及其制备方法和应用.pdf VIP
文档评论(0)