算法设计与分析 实验指导书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写者签字 : 周华兵 审阅者签字:
分管实验教学领导签字:
-2-
《算法设计与分析》课程实验指导书
一、 使用说明
本课程的目的是使学生掌握计算机科学技术领域中的一些常用的、经典的算 法设计技术,学会分析算法、估计算法的时空复杂性,在非数值计算的层面上, 具备把实际问题抽象描述为数学模型的能力,同时能针对不同的问题对象设计有 效的算法,用典型的方法来解决科学研究及实际应用中所遇到的问题。并且具备 分析算法效率的能力,能够科学地评估有关算法和处理方法的效率。
上机的工作环境要求:Windows 2000 或以上操作系统、VC 或 Python 学生应按指导教师的要求独立完成实验,并按要求撰写实验报告(应包含实 验核心程序、实验过程和结果中的关键图片)。
二、 实验说明
1.分治法 目的: 理解递归算法的思想和递归程序的执行过程,并能熟练编写递归程序。掌握分治算法的思想, 对给定的问题能设计出分治算法予以解决。 内容: 二分查找 在对线性表的操作中,经常需要查找某一个元素在线性表中的位置。此问题的输入是待查元 素 x 和线性表 L,输出为 x 在 L 中的位置或者 x 不在 L 中的信息。 提高:试对线性表运用快速排序的方法进行排序。 2.减治法 目的: 理解减治法的思想,并能熟练的编写程序。对给定的问题予以解决。 内容: 深度优先搜索和广度优先搜索 在对图的操作过程中,经常要查找某一元素在图中的位置。此问题的输入为一个图,输出图 的顶点,并按照深度优先或者广度优先遍历第一次访问到的先后次序,用连续的整数标记。 3.动态规划 目的:理解动态规划的基本思想,理解动态规划算法的两个基本要素最优子结构性质和子问
-1-
题的重叠性质。熟练掌握典型的动态规划问题。掌握动态规划思想分析问题的一般方法,对 较简单的问题能正确分析,设计出动态规划算法,并能快速编程实现。 内容:编程实现最长公共子序列问题、矩阵连乘问题,设计出算法并编程实现。Baidu Nhomakorabea4.贪心算法 目的:理解贪心算法的思想,掌握贪心算法的思想,对给定的问题能设计出贪心算法予以解 决。 内容:0-1 背包问题 在 0 / 1 背包问题中,需对容量为 c 的背包进行装载。从 n 个物品中选取装入背包的物品, 每件物品 i 的重量为 wi ,价值为 pi 。对于可行的背包装载,背包中物品的总重量不能超 过背包的容量,最佳装载是指所装入的物品价值最高。
分管实验教学领导签字:
-2-
《算法设计与分析》课程实验指导书
一、 使用说明
本课程的目的是使学生掌握计算机科学技术领域中的一些常用的、经典的算 法设计技术,学会分析算法、估计算法的时空复杂性,在非数值计算的层面上, 具备把实际问题抽象描述为数学模型的能力,同时能针对不同的问题对象设计有 效的算法,用典型的方法来解决科学研究及实际应用中所遇到的问题。并且具备 分析算法效率的能力,能够科学地评估有关算法和处理方法的效率。
上机的工作环境要求:Windows 2000 或以上操作系统、VC 或 Python 学生应按指导教师的要求独立完成实验,并按要求撰写实验报告(应包含实 验核心程序、实验过程和结果中的关键图片)。
二、 实验说明
1.分治法 目的: 理解递归算法的思想和递归程序的执行过程,并能熟练编写递归程序。掌握分治算法的思想, 对给定的问题能设计出分治算法予以解决。 内容: 二分查找 在对线性表的操作中,经常需要查找某一个元素在线性表中的位置。此问题的输入是待查元 素 x 和线性表 L,输出为 x 在 L 中的位置或者 x 不在 L 中的信息。 提高:试对线性表运用快速排序的方法进行排序。 2.减治法 目的: 理解减治法的思想,并能熟练的编写程序。对给定的问题予以解决。 内容: 深度优先搜索和广度优先搜索 在对图的操作过程中,经常要查找某一元素在图中的位置。此问题的输入为一个图,输出图 的顶点,并按照深度优先或者广度优先遍历第一次访问到的先后次序,用连续的整数标记。 3.动态规划 目的:理解动态规划的基本思想,理解动态规划算法的两个基本要素最优子结构性质和子问
-1-
题的重叠性质。熟练掌握典型的动态规划问题。掌握动态规划思想分析问题的一般方法,对 较简单的问题能正确分析,设计出动态规划算法,并能快速编程实现。 内容:编程实现最长公共子序列问题、矩阵连乘问题,设计出算法并编程实现。Baidu Nhomakorabea4.贪心算法 目的:理解贪心算法的思想,掌握贪心算法的思想,对给定的问题能设计出贪心算法予以解 决。 内容:0-1 背包问题 在 0 / 1 背包问题中,需对容量为 c 的背包进行装载。从 n 个物品中选取装入背包的物品, 每件物品 i 的重量为 wi ,价值为 pi 。对于可行的背包装载,背包中物品的总重量不能超 过背包的容量,最佳装载是指所装入的物品价值最高。