第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树最大键

 

树构造方法:自顶向下

 

posted on 2018-06-03 16:51  秦梦超  阅读(278)  评论(0编辑  收藏  举报

导航