算法设计与分析(王多强)算法复习提纲.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题型及分数分布:
1.填空题
2.简答题、证明题
3.计算题2-3题
4.算法设计题2-3题15分
25分左右30分左右30分左右
复习提纲
算法基础
1.什么是算法?
2.算法的五个重要特性
3.运算的分类:时间囿界于常数的运算、时间非囿界于常数的运算,为什么要定义时间囿界
于常数的运算?怎么分析吋间非囿界于常数的运算?
4.什么是事前分析和事后测试?各阶段的目标和特点是什么?
5.什么是函数表达式的数量级?数量级的大小怎么反应了算法复杂度的高低?
6.什么是限界函数?怎么得来的?
7.限界函数:上界函数、下界函数、“均值”函数的定义和性质
8.理解定理1.2, P76定理
9.掌握数学归纳法、反证法、反例法等证明方法
二、递归与递归式
1.什么是递归和递归程序设计?
2.递归的结构是什么?
3.什么是直接递归和间接递归?
4.递归程序有哪些效率问题?各自的原因是什么?
5.怎么消去递归(不要求)
6.什么是代换法、递归树法、主方法?(例题、习题)
三、分治法
1.简述分治法的基本思想?分治法分解问题的基本要求是什么?为什么说分治与递归像一对李生兄弟?
2.可用分治法求解的问题应具有的特征?(了解)
3.分治法求解的三个步骤。
4.二分检索(3.2节)
1)了解算法
2)重点掌握算法复杂度的分析技术
(1)对成功和不成功检索情况的讨论
(2)什么是二元比较树?内结点、外结点分别代表了什么?比较次数和结点在树屮的级数(或根到结点的路径长度)Z间的关系。
3)定理3.1及其证明过程和结论
4)什么叫做以比较为基础的检索?其下界是什么?(了解)
5)为什么说二分检索是解决检索问题的最优的最坏情况算法?
5.找最大和最小元素(3.3节):一般了解,理解递归程序的效率问题
6.基于分治的分类算法(3.4节):回顾数据结构相关知识,知道每种分类算法的基本思想、
算法复杂度、适用性等方面的性质(不考算法,考应用)
1)P46:以关键字比较为基础的分类算法的吋间下界是什么?怎么证明的?(了解)
2)P60:一个改进了的快速分类迭代算法模型,其空I'可复杂度为O(logn)是怎么得来的?
7.选择问题(3.5节)
1)了解基于partition的选择算法设计思想、最坏、平均吋间复杂度的结论和证明。
2)了解如何实现最坏情况是0(n)的选择算法,什么是二次収中?目的是什么?
3)了解算法3.10,算法3.11不做要求
10.矩阵乘积的Strassen算法(3.6节):一般了解
11.最近点对问题(3.7节):一般了解,重点领会分治策略的使用
四.中位数和顺序统计学
1.基本概念:顺序统计量、中位数(下中位数、上中位数)
2.屮位数的统计学意义是什么?和平均数相比有什么独特Z处?(了解)
3.什么是带权中位数?什么是一维带权中位数、二维带权中位数?
4.什么是Manhattan距离?
5.了解石油管的最优位置、一维邮局问题、二维邮局问题
6.为什么使工00(", 口)最小的点满足-和工0 V厅?如何理解石油管
7=1 Pi
五、贪心策略
1•基本概念:约束条件、可行解、目标函数、最优解
2.简述贪心策略的一般方法
3.背包问题(5.2节)
1)三种量度标准的选择,理解为什么说贪心方法求解问题的关键是选取能够得到问题最优解的量度标准。
2)会计算:见例题
3)定理5.1,贪心解是最优解的证明:基本思路和具体方法
4.带有限期的作业排序(
5.3节)
1)了解单机无资源约束的单元任务非抢占调度问题的定义
2)会计算:见例题
3)算法及其证明:了解
4)课件P54:其他具有不同执行时I'可的作业调度问题:不要求
5.最优归并模式(5.4节)
1)什么是带权外部路径长度?
2)什么是最优二路归并模式?
3)最优二路归并模式的求解:会计算,会画最优二路归并树、计算带权外部路径长度。
4)最优解的证明(不要求)
5)哈夫曼编码(不要求)
6.最优装载问题(5.5节):不要求
7.贪心策略的基本要素(5.7节)
1)什么是贪心选择性质?
2)贪心策略和动态规划的区别
8.最小成本生成树(5.8节):Prim算法、Kruskal算法
1)会计算:对已知图,可以画出最小成本生成树
2)其他相关生成树:单源点最短路径生成树、BFS生成树、DFS生成树
9.单源最短路径(Dijkstra算法,5.9节)
1)算法:了解
2)会用:一个点到其它各个点的最短路径
3)会计算(填表,见例题)
六.动态规划
1.什么是多阶段决策过程?
2.什么是无后效性?对问题求解带来什么影响?
3.什么是状态转移方程?
4.什么是多阶段决策过程的最优化问题?
5.什么是最优性原理(最优子结构性)?结合实例了解如何证明问题满足最优性原理?
6.递推策略:向前处理法、向后处理法(了解,结合实例具体设计)
7.多段图问题(6.2节):了解
&每对结点之间的最短路径(6.3节)
会计算:见例题,矩阵的迭代
9.最优二分检索树(6.4节)
1)会计算:W(ij)、C(ij)、R(i,j)的计算,及树形态的推导
2)算法:了解
10.0/1背包问题(6.5节)
1)会计算:用序偶集的方式计算、支配规则的使用、解的推导
2)算法6.6 : 了解
3)算法6.7:不要求
4)DKNAP的分析(了解)
5)启发式生成策略(了解)
11・最长公共子序列(6.6节):了解
1)LCS问题的最优子结构性:定理6.2
2)递推关系式
3)算法:了解
4)计算:不要求
12.矩阵链乘法(6.7节):不要求
13.货郎担问题(6.8节):不要求
七、检索与周游
1.基本概念:检索、周游、访问结点、检测