- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计实验报告一简单算法设计
实验报告一
课程 C++ 实验名称 简单算法设计 第 1 页 专业 _数学与应用数学_ _班级__ 学号 姓名
实验日期:2013 年 3 月 9 日 报告退发 (订正 、 重做)
一、实验目的
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
(二) 整数集合分解
1.问题描述
设计算法把一个n个元素的整数集合(n为偶数)分成两个子集S1和S2,使得:每个新的集合中含有n/2个元素,且S1中的所有元素的和与S2中的所有元素的和的差最大。
2. 具体要求(若在ACM平台上提交程序,必须按此要求)――平台上1768题
输入的第一行是一个正整数m,表示测试例个数。接下来几行是m个测试例的数据,每个测试例的数据由两行组成,其中第一行为一个正整数n (n为偶数,且n=500),表示原整数集合的长度,第二行给出这n个整数序列,整数之间用一个空格隔开。
输出:对于每个测试例输出两行,分别表示新生成的整数集合。其中,第一行是元素和比较小的整数集合,第二行是元素和比较大的整数集合,整数之间用一个空格隔开。两个测试例的输出数据之间用一个空行隔开,最后一个测试例后无空行
3. 测试数据
输入:
2
22
68 25 34 16 2 37 3 95 76 57 21 13 4 78 29 6 17 39 51 20 43 12
26
28 3 48 59 14 32 47 51 42 61 9 24 52 78 65 2 37 78 51 73 29 7 26 95 37 2
输出:
2 3 4 6 12 13 16 17 20 21 25
29 34 37 39 43 51 57 68 76 78 95
2 2 3 7 9 14 24 26 28 29 32 37 37
42 47 48 51 51 52 59 61 62 65 73 78 95
三、实验步骤
1.程序如下:
#includestdio.h
#define N 500
int main()
{
int i,j,m,n,t,k=0;
int a[N];
printf(请输入测试的数的个数:\n);
scanf(%d,m);
for(t=0;tm;t++)
{
printf(请输入序列的长度:\n);
scanf(%d,n);
printf(请输入序列的数字:\n);
for(i=0;in;i++)
scanf(%d,a[i]);
for(i=0;in;i++)
for(j=i+1;jn;j++)
if(a[i]==a[j])
k=1;
if(k==1) printf(yes\n);
else printf(NO\n);
}
return 0;
}
2. 程序如下:
#includestdio.h
#define N 500
int main()
{
int a[N];
int n,k,
文档评论(0)