《数据结构》王道 第七章 查找

《数据结构》王道 第七章 查找

1. 查找的基本概念

在这里插入图片描述

1.1 基本概念

在这里插入图片描述
在这里插入图片描述

1.2 算法的评价指标

在这里插入图片描述
查找成功的情况下:
在这里插入图片描述
查找失败的情况下:
在这里插入图片描述
在这里插入图片描述

2. 顺序查找

2.1 算法思想

在这里插入图片描述
在这里插入图片描述

2.2 算法实现

2.2.1 常规顺序查找

在这里插入图片描述

2.2.2 带哨兵的顺序查找

在这里插入图片描述
优点:无需判断是否越界。

2.3 效率分析

在这里插入图片描述

2.4 优化

2.4.1 对有序表

在这里插入图片描述
当查找到比查找目标大的元素之后,还没有找到查找目标的话,就不需要再往后查找了,说明表中没有想要查找的目标,查找失败。
在这里插入图片描述

2.4.2 被查概率不相等

在这里插入图片描述
在这里插入图片描述

3. 折半查找

3.1 算法思想

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 算法实现

在这里插入图片描述

3.3 查找效率分析

在这里插入图片描述
在这里插入图片描述
以此类推:
在这里插入图片描述
在这里插入图片描述

3.3.1 判定树的构造

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 拓展思考

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 分块查找

4.1 算法思想

在这里插入图片描述
在这里插入图片描述

4.1.1 用折半查找查索引

这种是查找目标刚好是索引上有的元素:
在这里插入图片描述
如果查找目标是索引上没有的元素的话,对于查找目标,对索引进行一次折半查找:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当查找目标大于索引中的任何一个时,则查找失败:
在这里插入图片描述

4.2 查找效率分析

在这里插入图片描述

4.2.1 顺序查找查索引表

在这里插入图片描述

4.2.2 折半查找查索引表

在这里插入图片描述
在这里插入图片描述

4.3 拓展思考

在这里插入图片描述

5. 二叉排序树(BST)

5.1 二叉排序树的定义

在这里插入图片描述

5.2 二叉排序树的查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 二叉排序树的插入

在这里插入图片描述

5.4 二叉排序树的构造

在这里插入图片描述
在这里插入图片描述

5.5 二叉排序树的删除

5.5.1 删除结点是叶节点

在这里插入图片描述

5.5.2 删除结点是一颗左子树或右子树

在这里插入图片描述
在这里插入图片描述

5.5.3 删除结点有左右两颗子树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.6 查找效率分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 平衡二叉树(AVL)

6.1 定义

在这里插入图片描述

6.2 插入操作

在这里插入图片描述
在这里插入图片描述

6.2.1 调整最小不平衡子树

在这里插入图片描述

1. LL

在这里插入图片描述
在这里插入图片描述

2. RR

在这里插入图片描述
在这里插入图片描述

3. LR

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. RL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.2 为什么每次调整的都是“最小不平衡子树"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.3 练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.6 查找效率分析

在这里插入图片描述
在这里插入图片描述

6.3 删除操作

在这里插入图片描述

6.3.1 例1

在这里插入图片描述
在这里插入图片描述

6.3.2 例2

删除 55
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没有出现不平衡向上传导的现象,所以结束。

6.3.3 例3

删除 32
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没有导致出现不平衡向上传导的现象,所以算法结束。

6.3.4 例4

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.3.5 例5

可以用前驱也可以用后继,这里先选择用前驱来顶替。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.3.6 例6

用后继顶替:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果选择95:
在这里插入图片描述
在这里插入图片描述
如果选择85:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7. 红黑树(RBT)

在这里插入图片描述
在这里插入图片描述

7.1 定义和性质

7.1.1 定义

在这里插入图片描述

7.1.2 练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1.3 黑高

在这里插入图片描述

7.1.4 性质

在这里插入图片描述

7.2 插入操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当把“爷变为新结点”后,还需要继续按照红黑树的定义进行判断和调整。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其余情况都类似,就不赘述了。
在这里插入图片描述

7.1 与“黑高”相关的推论

在这里插入图片描述
内部结点不包括叶子结点,即NULL那些结点。
在这里插入图片描述
在这里插入图片描述

7.3 删除操作(考的概率不大)

在这里插入图片描述

8. B树

8.1 B树的概念和特性

在这里插入图片描述
在这里插入图片描述

8.1.1 查找

在这里插入图片描述
在这里插入图片描述

8.1.2 如何保证查找效率

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1.3 B树的特性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1.4 B树的高度

在这里插入图片描述
求最大高度的一种方法:
在这里插入图片描述
另一种方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2 插入和删除

8.2.1 插入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2.2 删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3 B+树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3.1 查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也可以采用p指针继续顺序查找:
在这里插入图片描述
在这里插入图片描述

8.3.2 B+树 VS B树

在这里插入图片描述
在这里插入图片描述
注意是“结点中”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9. 散列查找

9.1 散列表

在这里插入图片描述

9.1.1 处理冲突的方法——拉链法

在这里插入图片描述

9.2 查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.3 常见的散列函数

9.3.1 除留余数法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.3.2 直接定址法

在这里插入图片描述

9.3.3 数学分析法

在这里插入图片描述

9.3.4 平方取中法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.4 处理冲突的方法

9.4.1 拉链法

在这里插入图片描述
在这里插入图片描述

9.4.2 开放定址法

在这里插入图片描述

1. 线性探测法(常考)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以此类推
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查找操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查找效率分析

在这里插入图片描述
在这里插入图片描述

缺点

在这里插入图片描述

2. 平方探测法

在这里插入图片描述
在这里插入图片描述

查找操作

在这里插入图片描述
在这里插入图片描述

3. 伪随机序列法

在这里插入图片描述
在这里插入图片描述

9.4.3 再散列法

在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值