向量分类问题和条形图轮廓问题.docx

上传人:b****9 文档编号:29121994 上传时间:2023-07-20 格式:DOCX 页数:8 大小:187.23KB
下载 相关 举报
向量分类问题和条形图轮廓问题.docx_第1页
第1页 / 共8页
向量分类问题和条形图轮廓问题.docx_第2页
第2页 / 共8页
向量分类问题和条形图轮廓问题.docx_第3页
第3页 / 共8页
向量分类问题和条形图轮廓问题.docx_第4页
第4页 / 共8页
向量分类问题和条形图轮廓问题.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

向量分类问题和条形图轮廓问题.docx

《向量分类问题和条形图轮廓问题.docx》由会员分享,可在线阅读,更多相关《向量分类问题和条形图轮廓问题.docx(8页珍藏版)》请在冰豆网上搜索。

向量分类问题和条形图轮廓问题.docx

向量分类问题和条形图轮廓问题

实验报告

课程名称

数据结构与算法设计 

实验课时

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去做了一些题目,感觉一些题目看起来很简单,但是你真正提交的时候就是不能通过。

我个人觉得我们要从基础学习起,才来学习有挑战性的题目。

我也建议老师让我们做一些基础的实验题目,这样才能刺激我们对数据结构的学习乐趣。

指导老师评议

 

 

成绩评定:

指导教师签名:

实验报告说明

实验名称要用最简练的语言反映实验的内容。

如验证某程序、定律、算法,可写成“验证×××”;分析×××。

实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。

在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。

一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。

实验环境实验用的软硬件环境(配置)。

实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。

这部分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几个步骤。

还应该画出流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。

数据记录和计算指从实验中测出的数据以及计算结果。

结论(结果)即根据实验过程中所见到的现象和测得的数据,作出结论。

小结 对本次实验的体会、思考和建议。

备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。

注意:

∙实验报告将记入实验成绩;

∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1