算法复习
考试题型:
- 20分 基本概念 判断题
选择题, 填空, - 插入排序复杂度
- 50-60分 简答
算法分析, 递归时间分析( 平摊时间分析, 基本分析, ) - 求最大流
- 二项堆
根表情况,
- 20-30分 算法设计题 1-2个算法题
- 分治
- 动态规划
- 贪心方法
考试重点
渐进记号
分治方法
递归式
快速排序算法
递归函数时间分析以及相应要求平均不考循环不变式
快速排序
红黑树
插入和删除的过程和时间复杂度不会考具体插入操作和删除操作
红黑树有10个节点
数据结构扩张方法的基本步骤
动态序
动态规划
动态规划的基本步骤
贪心算法的要素
算法例子要清楚
最长公共子序列
活动选择问题
贪心法的理论基础
什么是最大独立子集
平摊分析
平摊分析合计法
定义势函数
验证势函数的正确性
进行平摊分析
二项堆
概念要清楚
三个堆的各个操作的时间复杂度
各个堆的结构
根表的形式
给一个根表
流网络
ford-fulkerson方法
用ford-fulkerson方法求最大流push-relable方法
递归/分治策略/求解递归式
渐进记号
求解递归式
代入法
(取底求上界)
假设形式必须与求解形式保持严格一致!
x
v (取顶求上界/取底求下界)
- 习题课例题
取顶求上界
取底求下界
递归树法
- 习题课例题
主方法
- 习题课例题
证明: 数学归纳法
归并排序
- 习题课例题
快速排序
二叉树/红黑树/区间树
删除节点
红黑树
数据结构扩张
- 找第i个最小值
OS-select(x,i)
O(lgn) - 求x序值
OS-rank(T,x)
O(lgn) - 插入和删除size域 O(lgn)
- 插入或删除操作的时间为O(lgn)
- 习题课例题
区间树
动态规划/贪心算法
动态规划
- 带备忘的自顶向下
- 自底向上
动态规划的要素:
最优子结构
重合子问题
装配线问题
- 描述问题的最优解结构特征
cut and paste
- 递归定义最优路线的最快时间
自底向上计算最快时间
FASTEST-WAY(a, t, e, x, n)构造最优解结构(输出最优路线)
矩阵链乘法
cut and paste
递归定义最优解值
自底向上计算最优解值
递归求解
具体解法:
(2条消息) 动态规划之——矩阵连乘
公共最长子序列LCS
找出LCS问题最优子结构性质
递归定义LCS值
自底向上计算LCS值
<A, B, C, B, D, A, B> <B, D, C, A, B, A>
贪心算法
贪心选择性质
贪心选择性质是应用贪心法求解的一个必要条件 所谓选择性质是指所求问题的最优解可以通过一系列局部最优的贪心选择而得到。 即。 局部最优=>全局最优贪心选择性质是区别与动态规划方法的一个重要特征: 因为贪心法在作出选择时并不依赖于将来的情况, 只需根据当前的情况即可作出选择, 。 最优子结构性质
活动选择问题
动态规划方法
贪心方法
贪心选择性质:
背包问题
Huffman编码
胚理论
平摊分析(势函数法)
栈操作
二进制计数器
动态表
- 插入和删除
二项堆/FIB堆
二项树
二项堆
创建二项堆
合并二项堆
case1
case2
case3/case4
二项堆插入节点
二项堆抽取(删除)最小节点
二项堆减小关键字
二项堆删除关键字
FIB堆
最大流/最小切
- 例题