1、题型分布

选择、填空、简答、算法设计与分析

2、知识点梳理

2.1、绪论

算法概念(求解问题的方法和步骤),和程序的区别,和程序的关系

算法的概念:程序=算法+数据结构

  1. 把程序看作代码的描述/具体实现
  2. 算法的五大特性、好的算法应具备哪些特征、算法设计的原则
  3. 常用的算法的描述方法
  4. 常见的算法设计方法(了解,知道)

复杂度分析

  1. 算法复杂度分析的方法(渐进阶O阶表示方法)
  2. 时间复杂度排序顺序
  3. 时间复杂度的计算方法、估算方法
  4. 作业:教材习题(两道题)

递归与分治算法

1.递归算法的特点,算法设计思想,原理,过程
2.分治:设计基本思想、和递归的关系、用分治求解问题的特征(最优子结构,独立性)、复杂度(了解,不考要知道)
3.二分搜索、大整数乘法、合并排序、快速排序(都利用了分治思想)
4.求众数,求逆序数对

动态规划算法

基本思想(与分治区别:有重叠子问题)、求解问题的基本步骤(简答题)。重叠子问题,最优子结构(两个基本要素)
6.矩阵连乘问题、最长公共子序列、最长公共子串(lcs算法)
7.实战练习

贪心算法

算法基本思想(局部最优,希望整体最优)、求解问题具备的性质(贪心选择、最优子结构)
9.找硬币、活动安排、背包问题(贪心选择策略)(特殊:0-1背包问题:贪心/动态规划)、哈夫曼编码
10.实战练习

回溯算法

11.回溯(基本操作:搜索-深度优先):算法基本思想/接口见、递归、迭代,子集树排列树
12.售票员、0-1背包问题、剪枝函数,不同节点概念、集装箱、批量处理作业(*),n后问题

分支界限算法

13.分支限界:基本思想,与回溯法区别、队列式/优先队列式(0-1背包)、装载问题
14.实战练习:迷宫问题、n皇后问题