第7章:时空权衡——《算法笔记
预处理,存储额外的信息:输入增强
预构造:只涉及存取结构
动态规划:记录重复子问题。是否要求幂等?
数据压缩
计数排序:数据来自小集合时有效
明确上下界:更优
数据,频数,分布
字符串匹配
最大步进
模式对模式匹配
匹配方向左到右,右到左
散列表
散列函数
散列地址
碰撞
开散列:链
闭散列:开式寻址,线性探查
双散列
重新散列
B树
次数:m
根具有2——m个子女
根叶以外节点,m/2到m个子女
(完美)平衡:所有叶子在同一层
区间(子树),端点,区间(子树),端点,区间(子树),端点,区间(子树),端点,区间(子树)
可折半查找
插入:分裂,上提
查找时预分裂
传递给兄弟节点,避免分裂
习题
1.
不用额外的存储交换两个变量
n顶点二叉树
判断u,v是否为祖先关系
设计输入增强算法
虚拟初始化
counter:已初始化个数
B[]:初始化的元素下标
C[i]=k:初始化的序号:i第k个初始化
石像一排,移动距离最小排序
#xo游戏
生成所有棋局与步骤
对称性:黑白对称,棋盘对称
2.
坏符号移动表
好后缀移动表
二进制文本匹配
自然语言匹配
循环右移字符串
3.
散列函数的选择
生日相同
人数
概率
互求
所有键唯一
区间
概率分布
开/闭
链表/数组
散列法求解列表元素唯一性
散列的策略:
1.时空权衡
2.?
4.
B树的上界
树的性质
面向对象的角度分析算法策略的本质
B树最大键
树构造方法:自顶向下