算法分析与设计复习重点(不会做的千万不要空着,特别是伪代码的题,凑都要凑满,这样老师好操作)考试成绩占50%
一、简答题(30分,基本概念)
简单题的答题角度:(最原始的问题是时间问题,时间的子问题是求人的存在问题,这是一种自上而下的搜索、扩展问题的方式)
1.最优子结构
2.原问题,划分,求解,合并
3.时间复杂度
4.子问题独立,重叠
5.自上而下,自下而上
6.求解目标
7.搜索方式
8.扩展方式
9.存储空间
10.这些算法题全是填空,一定要把代码看懂,不会写暂时都没事儿
1.什么是P问题
2.什么是NP问题
3.什么是NPC问题
4.(重点动态规划,分治,贪心,回溯,分支限界)最优解的解结构性质
最优子结构:原问题的最优解包括子问题的最优解,反过来说就是,我们可以通过子问题的最优解,推导出问题的最优解。
5.什么是最优解(重点动态规划)
6.贪心法的正确性满足那些条件
求得最优解:
(1)最优子结构性质
(2)贪心选择性质
7.贪心法的思想
8.贪心法最优解满足的条件
(1)贪心选择性质
(2)最优子结构性质
9.动态规划基本思想
10.证明正确性,有可能会是最优子结构证明。
原问题的最优解包括子问题的最优解
将原问题划分成若干个子问题,然后分别计算每个子问题解,最后将子问题的解合并成为原问题的解。
将原问题划分成若干个子问题,然后分别计算每个子问题解,最后将子问题的解合并成为原问题的解。
15.
二、算法分析(20分,给你的程序中包括递归方程,多去看分治那一章的递归方程)
1.给一个程序给你,你分析它的时间复杂度,
2.插入排序
3.合并排序
4.快速排序
5.二分搜索
三、算法设计(50分)
1.动态规划题,需要画表格,
(1)背包问题
有竖列的0,没有横行的0
(2)矩阵连乘
(3)最长公共子序列
(4)最优二叉搜索树
()最优二叉搜索树(根节点的深度为0)
2.给你一个问题,让你给出递归解结构(题不多)
(1)0-1背包问题
(2)矩阵连乘
(3)最长公共子序列
(4)最优二叉搜索树
(5)图像存储
(5)
3.伪代码是关于这个问题的一个部分
4.伪代码会有一个实例(重点动态规划),
5.回溯法要画状态空间图,树(重点背包问题),什么地方约束条件剪了枝,什么地方限界条件剪了枝
6.分支限界画装态空间图,树(重点背包问题),什么地方约束条件剪了枝,什么地方限界条件剪了枝
7.伪代码:
(1)0-1背包问题的动态规划算法
(2)贪心算法的活动安排问题
(3)最长公共子序列动态规划算法
(4)最长公共子序列备忘录算法
8.布线问题
9.活动布线问题
哈弗曼树
11.最小生成树
13.单源最短路径
14.n皇后问题
分支限界
16、
17.着色问题
18.n皇后问题的排列树和着色问题的排列数不同