1. 实验名称 本次实验的名称。
2. 问题描述 对本次实验要解决的问题的描述。
例子:处理汉诺塔问题时,描述什么是汉诺塔问题。
3. 解决思路 采用什么方法;为什么可以采用这个方法; 例子:处理棋盘覆盖问题时, 采用什么方法:采用递归分治的方法处理; 为什么可以采用递归分治方法的原因(P21 页图 2-6 下面一段,理解之后用自己的话表述):由于将棋盘横、纵各一分为二之后,特殊方格必然位于四个小的棋盘之一,那么剩余的其余三个小棋盘是没有方格的,如果采用某种 L 型骨牌覆盖没有特殊方格的三个小棋盘的中心相连部分(参见图 2-6 的 b),则三个小棋盘都各有 1 个特殊方格所覆盖。因此,这样处理之后,原来大棋盘覆盖的问题,就转化为四个小棋盘覆盖的问题,因此可以采用分治策略进行递归处理。
4. 算法设计与分析 给出算法设计的基本思想,如:伪算法描述,递归方程等。并分析算法的时间复杂度(空间复杂度)。注意,一定要有文字说明。
例子:快速排序 伪算法描述 QuickSort(int a[], int p, int r) { 如果待排序数组 a[]中只有一个元素则直接返回; 如果待排序数组 a[]中不止一个元素,则进行如下处理 {
对数组 a[p:r]进行 Partition 划分,使得 a[p:r]以 a[p]为标准,划分为三个部分,即:
左半部分 a[p:q-1];划分基准 a[q]=a[p];右半部分 a[q+1:r];
对左半部分快速排序 QuickSort(a, p, q-1);
对右半部分快速排序 QuickSort(a, q+1, r); } }
例子:0-1 背包问题 递归关系或者递归方程。
本站文章均为原创投稿,仅供下载参考,付费用户可查看完整且有格式内容!
(费用标准:38元/月,98元/年,微信支付秒开通!) |
升级为会员即可查阅全文 。如需要查阅全文,请 免费注册 或 登录会员 |