《算法设计与分析》实验指导及报告书.docx
《《算法设计与分析》实验指导及报告书.docx》由会员分享,可在线阅读,更多相关《《算法设计与分析》实验指导及报告书.docx(6页珍藏版)》请在冰豆网上搜索。
![《算法设计与分析》实验指导及报告书.docx](https://file1.bdocx.com/fileroot1/2022-10/18/c3104e9f-569c-457e-befb-b75d1c54bfe9/c3104e9f-569c-457e-befb-b75d1c54bfe91.gif)
《算法设计与分析》实验指导及报告书
常熟理工学院
《算法设计与分析》实验指导与报告书
______学年第____学期
专业:
___________________________________________
学号:
___________________________________________
姓名:
___________________________________________
实验地点:
___________________________________________
指导教师:
___________________________________________
计算机科学与工程学院
2012
实验目录
实验一求最大公约数
实验目的与任务
⑴复习数据结构课程的相关知识,实现课程间的平滑过渡;
⑵掌握并应用算法的数学分析和后验分析方法;
⑶理解这样一个观点:
不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。
预习内容:
第一章绪论1.1算法的概念
实验内容及要求
⑴至少设计出三个版本的求最大公约数算法;
⑵对所设计的算法采用大O符号进行时间复杂性分析;
⑶上机实现算法,并用计数法和计时法分别测算算法的运行时间;
⑷通过分析对比,得出自己的结论。
实验结果(可续页)
教师评分
实验二串匹配问题
实验目的与任务
⑴深刻理解并掌握蛮力法的设计思想;
(2)理解这样一个观点:
用蛮力法设计的算法,一般来说,经过适度的努力后,都可以对算法的第一个版本进行一定程度的改良,改进其时间性能。
(了解空间换时间权衡的思想)
预习内容
BruteForce算法,Horspool算法.(P1977.2串匹配中的输入增强技术)
实验内容及要求
⑴实现BruteForce算法;⑵实现BM算法的简化算法:
Horspool算法;⑶对上个算法进行时间复杂性分析,并设计实验程序验证分析结果。
实验结果(可续页)
教师评分
实验三斐波那契数列
实验目的与任务
⑴深入理解斐波那契数列;
(2)理解递归的思想;
预习内容
斐波那契数列;
实验内容及要求
⑴上机实现斐波那契数列的四种算法,并用计时法测算四种算法的运行时间;
⑵对所设计的算法采用大O符号进行时间复杂性分析;
⑶通过对四种算法分析对比,得出自己的结论
实验结果(可续页)
教师评分
实验四堆的创建与堆排序
实验目的与任务
1、深刻理解变换(变治法)的思想。
预习内容
堆的定义。
堆创建的算法与堆排序算法。
实验内容及要求
1、代码实现堆的创建。
2、代码实现堆排序算法。
3、分析堆排序算法的时间复杂度并与合并排序,快速排序算法进行比较,最后得出自己的结论。
实验结果(可续页)
教师评分
实验五霍纳法则
实验目的与任务
(1)深刻理解变治法的思想。
预习内容
霍纳法则,二进制幂
实验内容及要求
(1)代码实现霍纳法则算法。
并实现求任给一个多项式除以(x-c)的商和余数。
(2)代码实现计算的从左至右二进制幂算法。
(3)分析霍纳法则与蛮力计算多项式的算法时间复杂度,并进行比较。
实验结果(可续页)
教师评分
实验六Warshall算法和Floyed算法
实验目的与任务
⑴利用warshall算法计算有向图传递闭包和利用Floyed算法计算全部最短路径。
(2)深刻理解并掌握动态规划法的设计思想;
预习内容
warshall算法与Floyed算法
实验内容及要求
⑴上机实现算法,并用计数法和计时法分别测算算法的运行时间;
⑵对所设计的算法采用大O符号进行时间复杂性分析;
⑶通过对warshall算法与Floyed算法分析对比,找出的他们的相似处。
实验结果(可续页)
教师评分
实验七最优二叉查找树
实验目的与任务
1、深刻理解动态规划法的思想。
预习内容
最优二叉查找树的定义与算法
实验内容及要求
(1)代码实现动态规划算法求最优二叉树的算法。
(2)根据实现的代码给出至少含5个键的最优二叉树主表和根表,并根据根表画出最优二叉查找树。
(3)分析此算法的时间复杂度。
实验结果(可续页)
教师评分
实验八解非线性方程的算法
实验目的与任务
理解NP困难问题,了解其中一些问题的近似算法
预习内容
解非线性方程的算法平分法,试位法,牛顿法
实验内容及要求
(1)代码实现平分法求方程近似解的算法
(2)代码实现试位法,牛顿法求方程近似解的算法
(3)分析三种算法的时间复杂度,比较三种算法的优缺点。
实验结果(可续页)
教师评分