《算法分析与设计基础》考前复习提纲
算法设计与分析复习提纲
一 基本概念
- 算法的五个重要特性。
- 算法有几种基本控制结构?
- 算法的最好、最坏情况下和期望时间复杂度的定义。用比较树模型描述算法,并说明最坏情况下的时间复杂性。
- 符号O的定义。常用的上界函数有哪些?
- O的运算规则。
- 运用O的运算规则分析冒泡排序算法的时间复杂性的渐进阶。
- 用算法时间复杂性曲线说明给算法的时间复杂度降阶的好处。例如顺序查找和折半查找。
- 分析将数组分成1/3和2/3大小不等的两部分的二分检索算法和折半的二分检索算法的时间复杂度差异。(主方法等考点)
- 分治法的基本思想。
- 归并排序和快速排序算法在最坏情况下的时间复杂性有什么差异?快速排序算法的期望时间复杂性怎样?
- 顺序选择(找第k小的的元素)算法的基本控制流程。如何解决子问题划分不平衡对时间复杂度的影响。
- 贪心法的基本策略。最优子结构的概念。
- 背包问题的目标函数是什么,贪心算法的最优量度是什么,贪心算法是否获得最优解? 用贪心算法解0/1背包问题是否可获得最优解?
- Prim算法和Dijkstra算法的贪心策略。了解它们在算法上的相似和不同,它们是怎么避免陷入局部最优的?
- 带有限期的作业排序贪心算法的基本思想和流程。
- 解释Bellman方程。多段图、矩阵连乘、0/1背包问题、流水线作业调度动态规划递归方程。
- 用动态规划法求解的基本原则,解题的几大基本步骤。能举例说明。
- 回溯法的基本思想和一般控制流程。
- 解空间的含义,显约束和隐约束。说明回溯法适合求解的问题。能举例,要求用形式化描述问题。
- 掌握n皇后、哈密顿环、M-着色、子集和数问题的回溯算法。
- 回溯法的效率分析方法。影响搜索效率的因素。子集和数问题的回溯法是怎样提高效率的?是否避免了最坏情况下的所有无效搜索?
- 分枝限界方法与回溯法的关系。
- LC搜索的思路。在所有情况下LC搜索都能保证最优吗?
- 有了选择策略,为什么还提要加强限界?举例说明上界函数的作用。
二、 算法时间复杂性分析
1. 怎样选择时间复杂度的量?举例说明。
2. 几种控制流程的时间复杂度的计量原则。
3. 运用渐进阶O的运算规则分析算法基本流程的渐进复杂性。
4. 递归过程的时间复杂性分析。如MAXMIN、归并排序、Hanoi塔算法的时间复杂度。
三、算法理解和设计
1.掌握学过的算法。
2.能够运用它们解题,即按照算法的步骤写出所给实例的解题步骤。例如用深度优先搜索判断图是否连通,用Dijkstra算法找从i到j的最短路径。
3.能够按照已学的框架,设计算法。如果是贪心算法,要讨论算法的有效性。
作者:霊梦
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.