查找基本概念
查找⻓度——在查找运算中,需要对⽐关键字的次数称为查找⻓度。
线性结构
顺序查找
引入哨兵
不引入哨兵
性能分析
改进(有序表)
折半查找
分块查找(索引查找)
树形结构
二叉查找树(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 天,点击查看活动详情