《算法分析与设计》实验指导与报告书Word格式.docx
- 文档编号:16385717
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:9
- 大小:58.52KB
《算法分析与设计》实验指导与报告书Word格式.docx
《《算法分析与设计》实验指导与报告书Word格式.docx》由会员分享,可在线阅读,更多相关《《算法分析与设计》实验指导与报告书Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
计算机科学与工程学院
2015.03.06
实验目录
实验1求最大公约数1
实验2斐波那契数列2
实验3*最近对问题*3
实验4堆排序4
实验5霍纳法则和二进制幂5
实验6字符串匹配问题6
实验7Warshall算法和Floyd算法7
实验8最优二叉查找树8
实验9*Huffman编码*9
实验10求解非线性方程10
实验11*投资问题*11
注:
(1)独立完成6个实验就可通过实验考核;
(2)实验4和实验5为变治法应用,建议二选一;
(3)实验7和实验8为动态规划法应用,建议二选一;
(4)带*号的实验为选做实验,根据课时及学生实验完成情况机动安排。
实验1求最大公约数
实验目的
(1)求两个自然数m和n的GCD(GreatestCommonDivisor);
(2)掌握并应用算法的数学分析和后验分析方法;
(3)理解这样一个观点:
不同的算法能够解决相同的问题,但这些算法的思路不同,时间复杂性也不同。
预习内容
P21.1什么是算法
实验内容
(1)设计出3个版本的求最大公约数的算法;
(2)采用C实现算法,利用计数法记录基本语句的执行次数;
(3)分析3种算法的时间复杂性;
通过分析对比,得出结论。
实验结果(可续页)
教师评分
实验2斐波那契数列
(1)求斐波那契数列;
(2)区分递归和递推思想。
P602.5例题:
斐波那契数列
(1)设计出3个版本的求斐波那契数列的算法;
(2)采用C实现算法;
实验3*最近对问题*
(1)设p1=(x1,y1),p2=(x2,y2),…,pn=(xn,yn)是平面上n个点构成的集合S,设计算法找出集合S中距离最近的点对;
(2)进一步掌握递归算法的设计思想以及递归程序的调试技术;
(3)理解此观点:
分治和递归经常同时应用在算法设计中。
P1134.6.1最近对问题
(1)用分治法求解最近对问题;
(3)分析算法的时间复杂性,并与蛮力法比较,得出结论。
实验4堆排序
(1)实现堆的创建和堆排序;
(2)理解变治法的思想。
P1696.4堆和堆排序
(1)采用C实现堆创建算法;
(2)采用C实现堆排序算法;
(3)分析堆排序算法的时间复杂度,并与合并排序、快速排序比较,得出结论。
实验5霍纳法则和二进制幂
(1)实现计算多项式的霍纳法则;
(2)实现从左至右和从右至左二进制幂算法;
(3)理解变治法的思想。
P1766.5霍纳法则和二进制幂
(1)采用C实现计算多项式的霍纳法则;
(2)采用C实现计算an的从左至右和从右至左二进制幂算法;
(3)分析霍纳法则的时间复杂度,并与蛮力法比较,得出结论。
实验6字符串匹配问题
(1)给定一段文本,在该文本中查找并定位任意给定字符串;
(2)深刻理解并掌握时空权衡的设计思想。
P1947.2字符串匹配中的输入增强技术
(1)采用C实现BM算法的简化算法:
Horspool算法;
(2)利用计数法记录基本语句的执行次数;
(3)分析Horspool算法的时间复杂度,并与蛮力法比较,得出结论。
实验7Warshall算法和Floyd算法
(1)实现计算有向图传递闭包的warshall算法;
(2)利用Floyd算法计算图的完全最短路径;
(3)深刻理解并掌握动态规划法的设计思想。
P2168.2Warshall算法和Floyd算法
(1)采用C实现算法,利用计数法记录基本语句的执行次数;
(2)分析2种算法的时间复杂性;
(3)通过对2种算法的分析对比,找出的它们的相似处。
实验8最优二叉查找树
(1)实现最优二叉查找树的动态规划算法;
(2)深刻理解并掌握动态规划法的设计思想。
P2238.3最优二叉查找树
(1)采用C实现最优二叉查找树的动态规划算法;
(2)根据实现的代码输出至少含5个键的最优二叉树的主表和根表;
(3)分析算法的时间复杂度。
实验9*Huffman编码*
(1)设需要编码的字符集为{d1,d2,…,dn},出现的概率为{w1,w2,…,wn},应用Huffman树构造最短的变长编码方案;
(2)了解前缀编码的概念,理解数据压缩的基本方法;
(3)掌握贪心法的设计思想并熟练运用。
P2509.4哈夫曼树
(1)设计贪心算法求解Huffman编码方案;
(3)分析算法的时间复杂性。
实验10求解非线性方程
(1)采用平分法、试位法和牛顿法求解非线性方程;
(2)理解近似算法求解某些问题的思路。
P34212.4解非线性方程的算法
(1)采用C实现求方程近似解的平分法、试位法和牛顿法;
(2)分析三种算法的时间复杂度,比较三种算法的优缺点。
实验11*投资问题*
(1)有n项可投资的项目,每个项目需要资金si,可获利润为vi,现有可用资金总数为M,为获得最大利润,应选择那些投资项目?
(2)了解实际问题与理论的异同;
(3)掌握实际问题的求解步骤。
(1)抽象出问题的模型;
(2)设计出2种算法解决投资问题;
(3)采用C实现算法;
(4)分析算法的时间复杂度。
........忽略此处.......
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法分析与设计 算法 分析 设计 实验 指导 报告书