- 48
- 0
- 约1.69万字
- 约 19页
- 2020-07-26 发布于福建
- 举报
《算法设计与分析》实验指导书
本书是为配合 《算法分析与设计实践教学大纲》 而编写的上机指
导,其目的是使学生消化理论知识,加深对讲授容的理解,尤其是一
些算法的实现及其应用, 培养学生独立编程和调试程序的能力, 使学
生对算法的分析与设计有更深刻的认识。
上机实验一般应包括以下几个步骤:
(1)、准备好上机所需的程序。 手编程序应书写整齐, 并经人工检查
无误后才能上机。
(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,
上机时出现的问题,最好独立解决。
(3)、上机结束后,整理出实验报告。实验报告应包括:题目、程序
清单、运行结果、对运行情况所作的分析。
目录
实验一 统计数字及字符编码( 2 学时) 1
实验二 蛮力法( 2 学时) 3
实验三 递归与分治法( 2 学时) 5
实验四 贪心算法( 2 学时) 8
实验五 回溯算法( 2 学时) 10
实验六 分支限界法( 2 学时) 12
实验七 动态规划算法( 3 学时) 15
实验一 统计数字及字符编码( 2 学时)
一、实验目的与要求
1、掌握算法的计算复杂性概念。
2、掌握算法渐近复杂性的数学表述。
3、掌握用 C++ 语言描述算法的方法。
4 实现具体的编程与上机实验 验证算法的时间复杂性函数
二、实验容
1、统计数字问题
1)问题描述
一本书的页码从自然数 1 开始顺序编码直到自然数 n。书的页码按照通常的习惯编
排,每个页码都不含多余的前导数字 0 。例如,第 6 页用数字 6 表示而不是 06 或 006
等。数字计数问题要求对给定书的总页码 n 计算出书的全部页码中分别用到多少次数
字 0 、1、2 、…、 9 。
2 )编程任务
给定表示书的总页码的 10 进制整数 n (1 ≤n≤ 109) 。编程计算书的全部页码中分
别用到多少次数字 0 、 1、2 、…、 9 。
3)程序算法
将页码数除以 10,得到一个整数商和余数,商就代表页码数减余数外有多少个 1
— 9 作为个位数,余数代表有 1—余数本身这么多个数作为剩余的个位数。此外,商还
代表 1—商本身这些数出现了 10 次,余数还代表剩余的没有计算的商的大小的数的个
数。把这些结果统计起来即可。
2 、字典序问题
1)问题描述
在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表 A 由 26 个小
写英文字母组成 A={a,b, …,z} 。该字母表产生的升序字符串是指字符串中字母按照从左到 右
出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现 1 次。例如,
a,b,ab,bc,xyz 等字符串都是升序字符串。现在对字母表 A 产生的所有长度不超过 6 的升序
字符串按照字典序排列并编码如下。
1 2 … 26 27 28 …
a b … z ab ac …
对于任意长度不超过 6 的升序字符串,迅速计算出它
原创力文档

文档评论(0)