第一章
1 什么是算法
算法是描述问题的过程和方法
2 算法和程序有什么区别
算法是解决问题的步骤,程序是算法的代码实现。算法要依靠程序来完成功能,程序需要算法作为工具。
3算法复杂度
包括时间复杂度和空间复杂度
第二章
1什么是递归算法
直接或间接地调用自身的算法
2.分治法的基本思想
将一个大问题划分成若干个小问题。
3.分治法用什么实现功能
递归函数实现
4.什么是递归函数
用函数自身给出定义的函数
5.保证分治法的效率
(1)将大问题划分成若干子问题(2)子问题独立
6.大整数乘法
应用题
7合并排序
应用题
8快速排序
应用题
第三章
1.什么是最优子结构性质
当问题的最优解包含子问题的最优解时。
2.重叠子问题
在用自顶向下求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。
3.动态规划的基本思想
将待求解问题分解成若干个自我问题,先求解子问题,然后从子问题的解得到原问题的解。子问题不是相互独立的。
4.动态规划与分治法的区别
动态规划:子问题不是相互独立的
分治法:子问题是相互独立的
5. 动态规划法的步骤
(1)找出最优子结构性质并刻画其结构性质
(2)递归的定义最优值
(3)自顶向上的凡是计算最优值
(4)根据最优值得到的信息构造最优解
6.矩阵连乘积
应用题
7.流水作业调度
应用题