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

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

  • 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
      • 6.3.3 例3
      • 6.3.4 例4
      • 6.3.5 例5
      • 6.3.6 例6
  • 7. 红黑树(RBT)
    • 7.1 定义和性质
      • 7.1.1 定义
      • 7.1.2 练习
      • 7.1.3 黑高
      • 7.1.4 性质
    • 7.2 插入操作
      • 7.1 与“黑高”相关的推论
    • 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 查找
      • 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 再散列法

1. 查找的基本概念

《数据结构》王道 第七章 查找_第1张图片

1.1 基本概念

《数据结构》王道 第七章 查找_第2张图片
《数据结构》王道 第七章 查找_第3张图片

1.2 算法的评价指标

《数据结构》王道 第七章 查找_第4张图片
查找成功的情况下:
《数据结构》王道 第七章 查找_第5张图片
查找失败的情况下:
《数据结构》王道 第七章 查找_第6张图片
《数据结构》王道 第七章 查找_第7张图片

2. 顺序查找

2.1 算法思想

《数据结构》王道 第七章 查找_第8张图片
《数据结构》王道 第七章 查找_第9张图片

2.2 算法实现

2.2.1 常规顺序查找

《数据结构》王道 第七章 查找_第10张图片

2.2.2 带哨兵的顺序查找

《数据结构》王道 第七章 查找_第11张图片
优点:无需判断是否越界。

2.3 效率分析

《数据结构》王道 第七章 查找_第12张图片

2.4 优化

2.4.1 对有序表

《数据结构》王道 第七章 查找_第13张图片
当查找到比查找目标大的元素之后,还没有找到查找目标的话,就不需要再往后查找了,说明表中没有想要查找的目标,查找失败。
《数据结构》王道 第七章 查找_第14张图片

2.4.2 被查概率不相等

《数据结构》王道 第七章 查找_第15张图片
《数据结构》王道 第七章 查找_第16张图片

3. 折半查找

3.1 算法思想

《数据结构》王道 第七章 查找_第17张图片
在这里插入图片描述
《数据结构》王道 第七章 查找_第18张图片
《数据结构》王道 第七章 查找_第19张图片
《数据结构》王道 第七章 查找_第20张图片

3.2 算法实现

《数据结构》王道 第七章 查找_第21张图片

3.3 查找效率分析

《数据结构》王道 第七章 查找_第22张图片
《数据结构》王道 第七章 查找_第23张图片
以此类推:
《数据结构》王道 第七章 查找_第24张图片
《数据结构》王道 第七章 查找_第25张图片

3.3.1 判定树的构造

《数据结构》王道 第七章 查找_第26张图片
《数据结构》王道 第七章 查找_第27张图片
《数据结构》王道 第七章 查找_第28张图片
《数据结构》王道 第七章 查找_第29张图片
《数据结构》王道 第七章 查找_第30张图片
《数据结构》王道 第七章 查找_第31张图片
《数据结构》王道 第七章 查找_第32张图片
《数据结构》王道 第七章 查找_第33张图片
《数据结构》王道 第七章 查找_第34张图片
《数据结构》王道 第七章 查找_第35张图片

3.4 拓展思考

《数据结构》王道 第七章 查找_第36张图片
《数据结构》王道 第七章 查找_第37张图片
《数据结构》王道 第七章 查找_第38张图片
《数据结构》王道 第七章 查找_第39张图片

4. 分块查找

4.1 算法思想

《数据结构》王道 第七章 查找_第40张图片
《数据结构》王道 第七章 查找_第41张图片

4.1.1 用折半查找查索引

这种是查找目标刚好是索引上有的元素:
《数据结构》王道 第七章 查找_第42张图片
如果查找目标是索引上没有的元素的话,对于查找目标,对索引进行一次折半查找:
《数据结构》王道 第七章 查找_第43张图片
《数据结构》王道 第七章 查找_第44张图片
《数据结构》王道 第七章 查找_第45张图片
《数据结构》王道 第七章 查找_第46张图片
《数据结构》王道 第七章 查找_第47张图片
当查找目标大于索引中的任何一个时,则查找失败:
《数据结构》王道 第七章 查找_第48张图片

4.2 查找效率分析

《数据结构》王道 第七章 查找_第49张图片

4.2.1 顺序查找查索引表

《数据结构》王道 第七章 查找_第50张图片

4.2.2 折半查找查索引表

《数据结构》王道 第七章 查找_第51张图片
《数据结构》王道 第七章 查找_第52张图片

4.3 拓展思考

《数据结构》王道 第七章 查找_第53张图片

5. 二叉排序树(BST)

5.1 二叉排序树的定义

《数据结构》王道 第七章 查找_第54张图片

5.2 二叉排序树的查找

《数据结构》王道 第七章 查找_第55张图片
《数据结构》王道 第七章 查找_第56张图片
《数据结构》王道 第七章 查找_第57张图片

5.3 二叉排序树的插入

《数据结构》王道 第七章 查找_第58张图片

5.4 二叉排序树的构造

《数据结构》王道 第七章 查找_第59张图片
《数据结构》王道 第七章 查找_第60张图片

5.5 二叉排序树的删除

5.5.1 删除结点是叶节点

《数据结构》王道 第七章 查找_第61张图片

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

《数据结构》王道 第七章 查找_第62张图片
《数据结构》王道 第七章 查找_第63张图片

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

《数据结构》王道 第七章 查找_第64张图片
在这里插入图片描述
《数据结构》王道 第七章 查找_第65张图片
《数据结构》王道 第七章 查找_第66张图片

5.6 查找效率分析

《数据结构》王道 第七章 查找_第67张图片
《数据结构》王道 第七章 查找_第68张图片
《数据结构》王道 第七章 查找_第69张图片
《数据结构》王道 第七章 查找_第70张图片

6. 平衡二叉树(AVL)

6.1 定义

《数据结构》王道 第七章 查找_第71张图片

6.2 插入操作

《数据结构》王道 第七章 查找_第72张图片
《数据结构》王道 第七章 查找_第73张图片

6.2.1 调整最小不平衡子树

《数据结构》王道 第七章 查找_第74张图片

1. LL

《数据结构》王道 第七章 查找_第75张图片
《数据结构》王道 第七章 查找_第76张图片

2. RR

《数据结构》王道 第七章 查找_第77张图片
《数据结构》王道 第七章 查找_第78张图片

3. LR

《数据结构》王道 第七章 查找_第79张图片
《数据结构》王道 第七章 查找_第80张图片
在这里插入图片描述

4. RL

《数据结构》王道 第七章 查找_第81张图片
《数据结构》王道 第七章 查找_第82张图片
《数据结构》王道 第七章 查找_第83张图片
《数据结构》王道 第七章 查找_第84张图片

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

《数据结构》王道 第七章 查找_第85张图片
《数据结构》王道 第七章 查找_第86张图片
《数据结构》王道 第七章 查找_第87张图片

6.2.3 练习

《数据结构》王道 第七章 查找_第88张图片
《数据结构》王道 第七章 查找_第89张图片
《数据结构》王道 第七章 查找_第90张图片

6.6 查找效率分析

《数据结构》王道 第七章 查找_第91张图片
《数据结构》王道 第七章 查找_第92张图片

6.3 删除操作

《数据结构》王道 第七章 查找_第93张图片

6.3.1 例1

《数据结构》王道 第七章 查找_第94张图片
《数据结构》王道 第七章 查找_第95张图片

6.3.2 例2

删除 55
《数据结构》王道 第七章 查找_第96张图片
《数据结构》王道 第七章 查找_第97张图片
《数据结构》王道 第七章 查找_第98张图片
《数据结构》王道 第七章 查找_第99张图片
《数据结构》王道 第七章 查找_第100张图片
没有出现不平衡向上传导的现象,所以结束。

6.3.3 例3

删除 32
《数据结构》王道 第七章 查找_第101张图片
《数据结构》王道 第七章 查找_第102张图片
《数据结构》王道 第七章 查找_第103张图片
《数据结构》王道 第七章 查找_第104张图片
没有导致出现不平衡向上传导的现象,所以算法结束。

6.3.4 例4

《数据结构》王道 第七章 查找_第105张图片

《数据结构》王道 第七章 查找_第106张图片
《数据结构》王道 第七章 查找_第107张图片
《数据结构》王道 第七章 查找_第108张图片

6.3.5 例5

可以用前驱也可以用后继,这里先选择用前驱来顶替。
《数据结构》王道 第七章 查找_第109张图片
《数据结构》王道 第七章 查找_第110张图片
《数据结构》王道 第七章 查找_第111张图片
《数据结构》王道 第七章 查找_第112张图片
《数据结构》王道 第七章 查找_第113张图片

6.3.6 例6

用后继顶替:
《数据结构》王道 第七章 查找_第114张图片
《数据结构》王道 第七章 查找_第115张图片
《数据结构》王道 第七章 查找_第116张图片
如果选择95:
《数据结构》王道 第七章 查找_第117张图片
《数据结构》王道 第七章 查找_第118张图片
如果选择85:
《数据结构》王道 第七章 查找_第119张图片
《数据结构》王道 第七章 查找_第120张图片
《数据结构》王道 第七章 查找_第121张图片
《数据结构》王道 第七章 查找_第122张图片

《数据结构》王道 第七章 查找_第123张图片

7. 红黑树(RBT)

《数据结构》王道 第七章 查找_第124张图片
《数据结构》王道 第七章 查找_第125张图片

7.1 定义和性质

7.1.1 定义

《数据结构》王道 第七章 查找_第126张图片

7.1.2 练习

《数据结构》王道 第七章 查找_第127张图片
《数据结构》王道 第七章 查找_第128张图片
《数据结构》王道 第七章 查找_第129张图片

7.1.3 黑高

《数据结构》王道 第七章 查找_第130张图片

7.1.4 性质

《数据结构》王道 第七章 查找_第131张图片

7.2 插入操作

《数据结构》王道 第七章 查找_第132张图片
《数据结构》王道 第七章 查找_第133张图片
《数据结构》王道 第七章 查找_第134张图片
《数据结构》王道 第七章 查找_第135张图片
《数据结构》王道 第七章 查找_第136张图片
当把“爷变为新结点”后,还需要继续按照红黑树的定义进行判断和调整。
《数据结构》王道 第七章 查找_第137张图片
《数据结构》王道 第七章 查找_第138张图片
《数据结构》王道 第七章 查找_第139张图片
《数据结构》王道 第七章 查找_第140张图片
《数据结构》王道 第七章 查找_第141张图片
《数据结构》王道 第七章 查找_第142张图片
《数据结构》王道 第七章 查找_第143张图片
其余情况都类似,就不赘述了。
《数据结构》王道 第七章 查找_第144张图片

7.1 与“黑高”相关的推论

《数据结构》王道 第七章 查找_第145张图片
内部结点不包括叶子结点,即NULL那些结点。
《数据结构》王道 第七章 查找_第146张图片
《数据结构》王道 第七章 查找_第147张图片

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

在这里插入图片描述

8. B树

8.1 B树的概念和特性

《数据结构》王道 第七章 查找_第148张图片
《数据结构》王道 第七章 查找_第149张图片

8.1.1 查找

《数据结构》王道 第七章 查找_第150张图片
《数据结构》王道 第七章 查找_第151张图片

8.1.2 如何保证查找效率

《数据结构》王道 第七章 查找_第152张图片
《数据结构》王道 第七章 查找_第153张图片
《数据结构》王道 第七章 查找_第154张图片

8.1.3 B树的特性

《数据结构》王道 第七章 查找_第155张图片
《数据结构》王道 第七章 查找_第156张图片
《数据结构》王道 第七章 查找_第157张图片

8.1.4 B树的高度

《数据结构》王道 第七章 查找_第158张图片
求最大高度的一种方法:
《数据结构》王道 第七章 查找_第159张图片
另一种方法:
《数据结构》王道 第七章 查找_第160张图片
《数据结构》王道 第七章 查找_第161张图片
《数据结构》王道 第七章 查找_第162张图片

8.2 插入和删除

8.2.1 插入

《数据结构》王道 第七章 查找_第163张图片
《数据结构》王道 第七章 查找_第164张图片
《数据结构》王道 第七章 查找_第165张图片
《数据结构》王道 第七章 查找_第166张图片
在这里插入图片描述
《数据结构》王道 第七章 查找_第167张图片
《数据结构》王道 第七章 查找_第168张图片
《数据结构》王道 第七章 查找_第169张图片
《数据结构》王道 第七章 查找_第170张图片
《数据结构》王道 第七章 查找_第171张图片
《数据结构》王道 第七章 查找_第172张图片
《数据结构》王道 第七章 查找_第173张图片
《数据结构》王道 第七章 查找_第174张图片
《数据结构》王道 第七章 查找_第175张图片
《数据结构》王道 第七章 查找_第176张图片
在这里插入图片描述
《数据结构》王道 第七章 查找_第177张图片
《数据结构》王道 第七章 查找_第178张图片

8.2.2 删除

《数据结构》王道 第七章 查找_第179张图片
《数据结构》王道 第七章 查找_第180张图片
《数据结构》王道 第七章 查找_第181张图片
《数据结构》王道 第七章 查找_第182张图片
《数据结构》王道 第七章 查找_第183张图片
《数据结构》王道 第七章 查找_第184张图片
《数据结构》王道 第七章 查找_第185张图片
《数据结构》王道 第七章 查找_第186张图片
《数据结构》王道 第七章 查找_第187张图片
《数据结构》王道 第七章 查找_第188张图片
《数据结构》王道 第七章 查找_第189张图片
《数据结构》王道 第七章 查找_第190张图片
《数据结构》王道 第七章 查找_第191张图片
《数据结构》王道 第七章 查找_第192张图片
《数据结构》王道 第七章 查找_第193张图片
《数据结构》王道 第七章 查找_第194张图片
《数据结构》王道 第七章 查找_第195张图片

8.3 B+树

《数据结构》王道 第七章 查找_第196张图片
《数据结构》王道 第七章 查找_第197张图片
《数据结构》王道 第七章 查找_第198张图片
《数据结构》王道 第七章 查找_第199张图片

8.3.1 查找

《数据结构》王道 第七章 查找_第200张图片
《数据结构》王道 第七章 查找_第201张图片
《数据结构》王道 第七章 查找_第202张图片
《数据结构》王道 第七章 查找_第203张图片
《数据结构》王道 第七章 查找_第204张图片
也可以采用p指针继续顺序查找:
《数据结构》王道 第七章 查找_第205张图片
《数据结构》王道 第七章 查找_第206张图片

8.3.2 B+树 VS B树

《数据结构》王道 第七章 查找_第207张图片
《数据结构》王道 第七章 查找_第208张图片
注意是“结点中”。
《数据结构》王道 第七章 查找_第209张图片
《数据结构》王道 第七章 查找_第210张图片
《数据结构》王道 第七章 查找_第211张图片
《数据结构》王道 第七章 查找_第212张图片
《数据结构》王道 第七章 查找_第213张图片
《数据结构》王道 第七章 查找_第214张图片
《数据结构》王道 第七章 查找_第215张图片
《数据结构》王道 第七章 查找_第216张图片

9. 散列查找

9.1 散列表

《数据结构》王道 第七章 查找_第217张图片

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

《数据结构》王道 第七章 查找_第218张图片

9.2 查找

《数据结构》王道 第七章 查找_第219张图片
《数据结构》王道 第七章 查找_第220张图片
《数据结构》王道 第七章 查找_第221张图片
《数据结构》王道 第七章 查找_第222张图片
《数据结构》王道 第七章 查找_第223张图片
《数据结构》王道 第七章 查找_第224张图片

9.3 常见的散列函数

9.3.1 除留余数法

《数据结构》王道 第七章 查找_第225张图片
《数据结构》王道 第七章 查找_第226张图片
《数据结构》王道 第七章 查找_第227张图片

9.3.2 直接定址法

《数据结构》王道 第七章 查找_第228张图片

9.3.3 数学分析法

《数据结构》王道 第七章 查找_第229张图片

9.3.4 平方取中法

《数据结构》王道 第七章 查找_第230张图片
《数据结构》王道 第七章 查找_第231张图片
《数据结构》王道 第七章 查找_第232张图片

9.4 处理冲突的方法

9.4.1 拉链法

《数据结构》王道 第七章 查找_第233张图片
《数据结构》王道 第七章 查找_第234张图片

9.4.2 开放定址法

《数据结构》王道 第七章 查找_第235张图片

1. 线性探测法(常考)

《数据结构》王道 第七章 查找_第236张图片
在这里插入图片描述
《数据结构》王道 第七章 查找_第237张图片
《数据结构》王道 第七章 查找_第238张图片
以此类推
在这里插入图片描述
《数据结构》王道 第七章 查找_第239张图片
《数据结构》王道 第七章 查找_第240张图片

查找操作

在这里插入图片描述
《数据结构》王道 第七章 查找_第241张图片
《数据结构》王道 第七章 查找_第242张图片

删除操作

《数据结构》王道 第七章 查找_第243张图片
《数据结构》王道 第七章 查找_第244张图片
《数据结构》王道 第七章 查找_第245张图片
《数据结构》王道 第七章 查找_第246张图片
《数据结构》王道 第七章 查找_第247张图片

查找效率分析

《数据结构》王道 第七章 查找_第248张图片
《数据结构》王道 第七章 查找_第249张图片

缺点

在这里插入图片描述

2. 平方探测法

《数据结构》王道 第七章 查找_第250张图片
《数据结构》王道 第七章 查找_第251张图片

查找操作

《数据结构》王道 第七章 查找_第252张图片
《数据结构》王道 第七章 查找_第253张图片

3. 伪随机序列法

在这里插入图片描述
《数据结构》王道 第七章 查找_第254张图片

9.4.3 再散列法

《数据结构》王道 第七章 查找_第255张图片
《数据结构》王道 第七章 查找_第256张图片

你可能感兴趣的:(考研数据结构,数据结构,算法,b树,散列表,排序算法)