数据结构——查找

在这里插入图片描述

查找的基本概念


在这里插入图片描述

顺序查找

在这里插入图片描述

无序查找


在这里插入图片描述

顺序查找

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

折半查找

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

分块查找

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

B树

在这里插入图片描述

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

插入

在这里插入图片描述
没有破坏结构的情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

叶结点删除

在这里插入图片描述

直接删除

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

兄弟够借

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

兄弟不够借

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

分支结点删除

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

B+树

在这里插入图片描述

在这里插入图片描述

B树与B+树的比较

在这里插入图片描述
查找方式
在这里插入图片描述

散列表(哈希表)

在这里插入图片描述

散列函数的构造方法

在这里插入图片描述

直接定值法

在这里插入图片描述

除留取余法

在这里插入图片描述

数字分析法

在这里插入图片描述

平方取中法

在这里插入图片描述

折叠法

在这里插入图片描述

冲突避免

在这里插入图片描述

开放定址法

在这里插入图片描述

增量计算方法

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

拉链法

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

查找

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

总结

在这里插入图片描述

真题

2019:采用线性探测法,计算可能是失败的长度,如果哈希函数为对n取余,则写出所有数字应该对应的位置,然后每个元素开始查找,直到查完所有的元素为止,比如如果有8个数,分别放在0-7号位置,查找0号元素的失败长度就是从0开始遍历,到8号位置,也就是遍历9次,查找失败的长度为9,所有元素的平均查找长度就是(9+8+7+6+5+4+3)/7=6(最后一个数不用查)

2018: 除根节点以外的非叶结点都有m/2去下界-1个关键字,高度为5的3阶B树含有的关键字个数至少有31个,3/2取上界-1等于1,每个非叶结点至少有1个关键字,所以这个二叉树就是一颗满二叉树有31个结点。

2015:折半查找比较结点序列构成的二叉排序树, 每个结点的度为1(每个结点只有个孩子或者二叉排序树为一根线)500,200,450,180构成的二叉排序树在200结点下有两个孩子所以不是二叉排序树的比较结点序列

2014, b树的关键字最小为m/2取上界限-1.

2011:散列表填装因子是元素和表长的比例,散列因子越大查找效率越低(因为发生冲突的概率也越大)

2010:平均查找成功长度,是通过查找元素,如果元素在对应的哈希函数指里面则长度为1,若不是往下依次查找知道查找到正确的值为止(查找成功的长度其实就是线性探测后移的长度)如哈希表7.8.30.11.18.9.14采用哈希函数H(key)=(key x 3)%3处理冲突采用线性探测

0123456789
71481130189

查找成功的长度就是就是线性探测的长度 其中7.8.30.11的长度都是1没有发生冲突,18后移了2位长度为3,9后移了2位长度为3,14后移了一位长度为2,所以查找成功的长度是(1+1+1+1+3+3+2)/7=12/7

查找失败的平均长度是根据哈希表中的元素个数计算的,每个位置的元素可能出现在它后面的任意非空位置,所以查找失败的长度就是查找完从当前位置开始到第一个非零位置的长度,如上表,0号位置中的元素可能出现在0,1,2号位置中,所以要查找3次才能知道查找失败,1号位置的元素可能出现在1,2号位置中所以要查找2次,2号位置为空只需查找自己1次,3号元素查找2次,4号一次,5号元素查找5次(5,6,7,8,9),6号元素查找4次,7号元素查找3次,长度相加求平均数就是(3+2+1+2+1+5+4)/7=18/7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值