向量分类问题和条形图轮廓问题.docx
- 文档编号:29121994
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:8
- 大小:187.23KB
向量分类问题和条形图轮廓问题.docx
《向量分类问题和条形图轮廓问题.docx》由会员分享,可在线阅读,更多相关《向量分类问题和条形图轮廓问题.docx(8页珍藏版)》请在冰豆网上搜索。
向量分类问题和条形图轮廓问题
实验报告
课程名称
数据结构与算法设计
实验课时
4
实验项目
实验二表
实验时间
2013-3-22
实验目的
1、表的基本运算
2、对算法的时间复杂性进行分析
实验环境
1、机房3
2、VisualC++6.0
实验内容(算法、程序、步骤和方法)
算法实验题2.1向量分类问题
实验任务:
给点m个n维向量,计算这m个n维向量可分为多少个类?
例如:
input.txtoutput.txt
643
3579
4375
3579
2146
3579
2146
源程序:
/*Note:
YourchoiceisCIDE*/
#include"stdio.h"
#include"malloc.h"
#include"string.h"
voidmain()
{
inti,j,m,n;
char**a;
charstr[10];
intsum=0;
printf("请输入向量的个数m和维数n:
");
scanf("%d%d\n",&m,&n);
a=(char**)malloc(m*sizeof(char*));
for(i=0;i { a[i]=(char*)malloc(81*sizeof(char)); a[i][0]='\0'; for(j=0;j { scanf("%s",str); strcat(a[i],str); strcat(a[i],","); } } printf("\n"); for(i=0;i { printf("%s\n",a[i]); } for(i=0;i { for(j=i+1;j { if(a[i]! ="") { if(strcmp(a[i],a[j])==0) strcpy(a[j],""); } } } for(i=0;i { if(! (strcmp(a[i],"")==0)) sum++; } printf("向量分为%d类",sum); } 算法实验题2.2条形图轮廓问题 实验任务: 对于给点的n个条形图,计算其条形图轮廓。 例如: Input.txtoutput.txt 11151113139012716319182232313290 267 3139 12716 14325 191822 231329 24428 源程序: /*Note: YourchoiceisCIDE*/ #include #include #include #defineLBound(-3000) #defineUBound3000 #defineCod2Idx(x)((x)-LBound) #defineSizeCod2Idx(UBound+1) intmain(){ inths[Size],n; inti,l,r,h,i0,i1; memset(hs,0,sizeof(*hs)*Size); printf("输入条形图的个数\n,分别表示左右竖线的x坐标,和高度\n"); scanf("%d",&n); for(i0=UBound,i1=LBound;n>0;n--){ scanf("%d%d%d",&l,&h,&r); if(l if(r>i1)i1=r; for(i=l;i if(hs[Cod2Idx(i)] hs[Cod2Idx(i)]=h; } } for(i=i0,h=0;i if(hs[Cod2Idx(i)]! =h) printf("%d%d",i,h=hs[Cod2Idx(i)]); printf("%d%d\n",i,0); return0; } 数据记录 和计算 算法实验题2.1: 数据一: 数据二: 数据三: 数据四: 算法实验题2.2 数据一: 数据二: 数据三: 数据四: 结论 (结果) 以上数据结果,经过计算是正确的。 但是比较的大的数据这个程序的结果还是不知道是否正确。 向量分类问题: 该程序使用了很多for循环; 一开始我还是不懂这个是什么意思,才知道它指向的是指针;如果这个没有正确的理解,可能会导致程序错误。 改程序的时间复杂度只有O( ); 时间复杂度不会太大;改程序调用了字符串的库函数 这样就在实验中减轻了代码量; 条形图轮廓问题: 对于这个问题,改程序是参考了网上的一些资料。 看起来有点难度。 该程序是二维坐标来做的。 这些定义的一开始不怎么理解,后来才知道主要是在平面二维左边来确定图形。 时间复杂度不是很大0(n*r)。 小结 实践就是检验真理的唯一标准,说明实验非常重要,特别对于我们编程来说。 我觉得老师上课应该重点放在对问题的分析,因为我们对一个问题如果没有正确的认识,反而我们不能正确进行编程。 有时候可以帮我们补充一些c语言的知识,比如上课上次给我们讲了二进制移位,在大一学习c语言的时候,我对这个移位还不是很懂,根本就是不理解。 我也根据老师介绍的一些poj去做了一些题目,感觉一些题目看起来很简单,但是你真正提交的时候就是不能通过。 我个人觉得我们要从基础学习起,才来学习有挑战性的题目。 我也建议老师让我们做一些基础的实验题目,这样才能刺激我们对数据结构的学习乐趣。 指导老师评议 成绩评定: 指导教师签名: 实验报告说明 实验名称要用最简练的语言反映实验的内容。 如验证某程序、定律、算法,可写成“验证×××”;分析×××。 实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。 在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。 一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 实验环境实验用的软硬件环境(配置)。 实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。 这部分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几个步骤。 还应该画出流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 数据记录和计算指从实验中测出的数据以及计算结果。 结论(结果)即根据实验过程中所见到的现象和测得的数据,作出结论。 小结 对本次实验的体会、思考和建议。 备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。 注意: ∙实验报告将记入实验成绩; ∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 向量 分类 问题 条形 轮廓
![提示](https://static.bdocx.com/images/bang_tan.gif)