- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2010-2011 学年第 2 学期《数据结构与算法实验》学期论文
数据结构与算法实验学期总结
我的数据结构
班级 : 09 计本一班 学号:2009810020 姓名:吴伟
摘要
数据结构实验的目的是为了加深对课堂知识的理解, 培养实验者的动手能力
和思维能力。 实验中,能体会到了算法和源程序之间的区别, 理解到要实现算法
要做的事情,解决编写源程序时遇到的各类问题。
关键字: 算法、源程序、算法实现、解决问题
一、 数据结构与算法课程实验的主要意义的目的
数据结构课程的实践性很强, 许多内容如果只进行单纯的课堂讲授是根本不能够深刻认识的。 例如,第二章线性表的多种存储结构的对比分析, 如不上机练习,就只能靠自己背,但这样就不能有更直观、形象的认识了。因此,实验是数据结构课程的一个重要环节。
首先,在实验的过程中,可以会体会到源程序与算法的区别。
算法是一种算法描述语言。 它不是一种现实存在的编程语言。 使用算法的目
的是为了使被描述的算法可以容易地以任何一种编程语言 (Pascal, C, Java, etc)实
现。它可能综合使用多种编程语言中语法、保留字,甚至会用到自然语言。 因
此,算法必须结构清晰,代码简单,可读性好,并且类似自然语言。
源程序 (source code)是指未编译的按照一定的程序设计语言规范书写的,一系列
人类可读的计算机语言指令。 其实现起来,有时并不像算法那样看起来那么简单。
例如,希尔排序的算法:
void ShellSort(SSTable L, int dlta[], int t) {
// 按增量序列 dlta[0...t-1] 对顺序表 L做希尔排序
for ( int k=0; kt; ++k)
ShellInsert(L, dlta[k]); // 一趟增量为 dlta[k] 的插入排序
} // ShellSort
第1页共14页
2010-2011 学年第 2 学期《数据结构与算法实验》学期论文
看到该算法,基本都会明白: 对L执行 t 次ShellInsert(L,dlat[k]) 操作就能完成
希尔排序。然而,要真正的实现该功能,必须有完整的代码:
bool LT( char a, char b){
return ab;
}
重建静态查找表为按关键字非降序排序。
void ShellInsert(SSTable L, int dk) {
int i,j;
for (i=dk+1; i=L.length; ++i)
if (LT(L.elem[i].key, L.elem[i-dk].key)) { // 需将 L.r[i] 插入有序增
量子表
L.elem[0] = L.elem[i]; // 暂存在 L.r[0]
for (j=i-dk; j0 LT(L.elem[0].key, L.elem[j].key); j-=dk)
L.elem[j+dk] = L.elem[j]; // 记录后移,查找插入位
置
L.elem[j+dk] = L.elem[0]; // 插入
}
} // ShellIn
void ShellSort(SSTable L, int dlta[], int t) {
for ( int k=0; kt; ++k)
ShellInsert(L, dlta[k]); // 一趟增量为 dlta[k] 的插入排序
} // ShellSort
所以,算法只用来说明复杂的问题,并不一定可以执行。
再次,实验会增强你的算法实现能力,锻炼你的思维和解决问题的能力。
在我们的数据结构课上,能学到的都是各种功能算法,没有源代码。所以,
如果要做实验, 你就必须思考, 想各种方法来实现算法。 在此过程中需要解决各
类问题,使源代码尽可能正确的达到算法的思想。
实验中,算法的实现会让我更容易的记住所学的知识, 用一个开玩笑的引用:
“一朝被蛇咬,十年怕井绳” 。
二、 概述本学期的实验内容和目的
实验一
实验名称:
《对比算法的时空效率》
实验目的及要求:
第2页共14页
2010-2011 学年第 2 学期《数据结构与算法实验》学期论文
熟悉开发工具的编程环境。
熟悉算法语言并完成简单的算法。
熟悉 C 语言的语法,将算法上机编程实现。
区别算法和源程序。
体会用不同算法解决同一个问题,体会存储结构不同对实现算法的影响。
学习对算法进行时空分析的基本方法。
了解评价一个算法的基本准则。
实验主要内容:
试编写求 k 阶(k=2)裴波那契序列的第 m 项值的不同算法, 并编程
实现。 k 和 m 均以值调用的形式在函数参数中表现。要求:至少用两种不
同的算法(如,递推、递归等等) 。
实验中涉及的主要实验原理:
k=1 时,
fac(0)=0,fac
您可能关注的文档
- 2019年普通高等学校招生全国统一考试(全国卷i含答案).docx
- 2020高考理科数学仿真模拟卷01(解析版).docx
- 2020年山东省历史普通高中学业水平等级考试(模拟卷).docx
- grc构件安装施工方案.docx
- xx公司考勤与请假管理制度范本.docx
- 安徽省普通高校分类考试招生语文数学英语模拟试题与答案.docx
- 安庆一中理科实验班招生考试(数学).docx
- 北京市2004年高级中等学校招生统一考试.docx
- 初中物理电学部分基础知识总结.docx
- 初中物理电学公式大全.打印.docx
- 浙江省临海市白云高级中学2025届高三历史3月月考试题.doc
- 云南拾谷县第一中学2024_2025学年高二物理上学期10月月考试题.doc
- 2025版高考生物总复习第13讲基因的分离定律教案苏教版.doc
- 湖北省黄石实验高中2024_2025学年高一历史下学期期末考试模拟卷.doc
- 通史版2025版高考历史大一轮复习专题七近代化的曲折发展__中日甲午战争至五四运动前4第4讲从维新思想到新文化运动课后达标检测含解析新人教版.doc
- 2024年高考数学考试大纲解读专题04导数及其应用含解析文.doc
- 河南省许汝平九校联盟2024_2025学年高一语文上学期期末考试试题扫描版无答案.doc
- 江西省吉安市吉水县第二中学2024_2025学年高一历史上学期第二次月考试题.doc
- 北京市平谷区2025届高三政治一模考试试题含解析.doc
- 2025届中考物理第四讲物态变化专项复习测试无答案新人教版.docx
文档评论(0)