查找结构与算法

145 阅读3分钟

查找基本概念

查找⻓度——在查找运算中,需要对⽐关键字的次数称为查找⻓度。


线性结构

顺序查找

引入哨兵

不引入哨兵

性能分析

改进(有序表)

折半查找

分块查找(索引查找)


树形结构

二叉查找树(BST)

别名:二叉查找树、二叉搜索树

定义

二叉排序树-查找

二叉排序树-插入

二叉排序树-构造

二叉排序树-删除

查找效率分析

平衡二叉树(AVL树)

定义

平衡二叉树-插入与调整

查找效率分析

红黑树(RBT)

红黑树来源

1、红黑树是一种自平衡的二叉查找树,是二叉查找树和平衡二叉搜索树的自然拓展

2、递进着理解红黑树:二叉查找树->二叉平衡树->红黑树,红黑树本身是二叉搜索树,结点中增加一个颜色的属性

3、红黑树是牺牲了严格的高度平衡的优越条件为代价。

4、它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。因此红黑树的构造和删除比AVL的简单。

5、红黑树具有良好的效率,它可在o(logn)时间复杂度内完成查找、增加、删除等操作

6、红黑树之所以能够保持“相对平衡”,是因为有“五大约束”,满足该五大约束,二又查找树才能成为红黑树。

红黑树的基本性质(五大约束):

1、每个结点是红色或者是黑色。

2、根结点是黑色。

3、度为0和1的结点的空指针域称为空叶子,也是黑色的。

4、红色结点的孩子必须是黑色的。(即不能有连续的红色节点)

5、从根出发到所有空叶子的简单路径(不往回走)经历的黑色结点数量相等。(简称黑高)

插入过程

首先,新插入的节点都是红色的。

总结3的例子

总结4-a的例子

总结4-b的例子

总结4-c的例子

总结4-d的例子

B树(多路平衡查找树)

B树的概念

若每个结点内关键字太少,导致树变高,要查更多层结点,效率低。

不够“平衡”,树会很高,要查很多层结点。

B树的高度

B树的插入

B树的删除

终端节点直接删除。删完保证不低于下限。

非终端节点可以转化为删除终端节点,使用直接前驱和直接后继来替代。

B+树

B+树的查找

B树与B+树的比较


散列结构

散列表与散列查找

散列函数

除留余数法

直接定址法

数字分析法

平方取中法

处理冲突的方法

拉链法

开放定址法

线性探测法

查找操作

删除操作

查找效率分析

平方探测法

伪随机序列法

再散列法

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 12 天,点击查看活动详情