- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单算法设计
实验报告
课程 算法设计技巧与分析 实验名称 简单算法设计 第 1 页
一、实验目的
1. 理解算法设计与分析的基本概念,理解解决问题的算法设计与实现过程;
2. 掌握简单问题的算法设计与分析,能设计比较高效的算法;
3. 熟悉C/C++语言等的集成开发环境,掌握简单程序设计与实现的能力;
二、实验内容
相等元素问题
1.问题描述
元素唯一性问题:给出一个整数集合,假定这些整数存储在数组A[1…n]中,确定它们中是否存在两个相等的元素。请设计出一个有效算法来解决这个问题,你的算法的时间复杂性是多少?
2. 具体要求(若在ACM平台上提交程序,必须按此要求)――平台上1767题
输入:输入的第一行是一个正整数m,表示测试例个数。接下来几行是m个测试例的数据,每个测试例的数据由两行组成,其中第一行为一个正整数n (n=500),表示整数序列的长度,第二行给出整数序列,整数之间用一个空格隔开。
输出:对于每个测试例输出一行,若该组测试例中存在两个相等的元素则输出”Yes”,否则,输出”No”。每个测试例的输出数据用一行表示。
3. 测试数据
输入:3
10
9 71 25 64 38 52 5 31 19 45
16
26 35 17 92 53 24 6 57 21 12 34 2 17 86 75 33
20
15 87 32 7 84 35 26 45 78 96 52 22 37 65 9 43 21 3 33 91
输出:No
Yes
No
4. 设计与实现的提示
算法最坏情况和平均情况的时间复杂性是衡量算法优劣的重要指标,算法设计要求尽可能设计比较高效的算法。
5.扩展内容
ACM平台提供了一个很好的学习环境,多数实验可以通过平台提交。课外可以通过平台来练习,提高算法设计与实现能力。
三、实验环境
硬件:Windows XP计算机、鼠标、键盘、显示器
开发环境:Microsoft Visual C++ 6.0
四、实验步骤
点击开始菜单中的程序-Microsoft Visual C++ 6.0
点击菜单栏中的文件—新建—文件—C++ Source File ,在文件名(N)中写入一(1).cpp,再点击确定.
编写程序如下:
#includestdio.h
/*-----------------计算元素个数是否唯一----------*/
int count(int rr[],int Long)
{
int i,j,first,count=0;
for(i=1;i=Long;i++)
{
first=rr[i];/*先从第一个元素开始,逐次与其它的元素比较
,若存在相等,则输出YES,否则输出NO*/
for(j=i+1;jLong;j++)
if(first==rr[j])
{
count=1;
}
}
if(count!=1)
return count;
}
/*------------------主函数---------------------*/
void main()
{
int i,j,m,h[10];
int A[500];
int B[20];
printf(输入数据:\n\n);
scanf(%4d,m);//测例数的个数
for(i=1;i=m;i++)
{
scanf(%4d,B[i]);//每个侧例数的长度
for(j=1;j=B[i];j++)//测例的整数序列
{
scanf(%d,A[j]);
}
h[i]=count(A,B[i]);//每个整数序列均调用函数看元素是否唯一
}
printf(\n\n);
printf(输出结果:\n\n);
for(i=1;i=m;i++)
{
if(h[i]==0)//若为0表示元素唯一
printf( NO\n);
else
printf( YES\n);
}
}
五、实验结果
实验一(1)的结果如下:
六、实验总结
1.主要要注意实验中的细节
2.在写算法的时候要注意时间复杂性。
您可能关注的文档
- 第三章通用规章制度.doc
- 第三讲 动词语态.doc
- 第三讲 城市总体规划(一).doc
- 第三组计算机网络课程设计文档jlf.doc
- 第三讲业态选择:经营许可及其申办(申办何种经营许可及如何申办).doc
- 第三课 幸福是 什 么.doc
- 第三部分VF数据库的基本操作.doc
- 第九届中学生古诗文阅读大赛答案.doc
- 第九章 现代德育答案.docx
- 第九章 汽车的回收与再生 教案.doc
- 《JJF 2132-2024荧光紫外灯人工气候老化试验装置校准规范:辐射照度参数》.pdf
- JJF 2120-2024轮速传感器校准规范.pdf
- 计量规程规范 JJF 2120-2024轮速传感器校准规范.pdf
- 《JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数》.pdf
- JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数.pdf
- 《JJF 2120-2024轮速传感器校准规范》.pdf
- JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
- JJF 2116-2024特定蛋白分析仪校准规范.pdf
- 《JJF 2116-2024特定蛋白分析仪校准规范》.pdf
- 计量规程规范 JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
文档评论(0)