数据结构 散列查找 思考题2

全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案

题目1:一个大小为11的散列表,散列函数为H(key)=key mod 11,采用线性探测冲突解决策略。如果现有散列表中仅有的5个元素均位于下标为奇数的位置,问:该散列表的平均不成功查找次数是多少?

  • A. 6/11

  • B. 1

  • C. 16/11

  • D. 不确定

解答:如上图,第一行是索引,第二行是我们存的数据,为了方便起见,这里只是用最简单的数。

然后假如我们要查的值算出来的hash是偶数,则只需要一次查找,因为都是空的。假如我们要查的值算出来的hash是奇数,也需要查两次,因为当前不是,则需要往右再查一次。总共11个数,偶数位置有6个,奇数有5个,所以最后的不成功平均查找次数为(6+2*5) / (6+5) 选C

题目2:在一个大小为K的空散列表中,按照线性探测冲突解决策略连续插入散列值相同的N个元素(N<K)。问:此时,该散列表的平均成功查找次数是多少?

  • A. 不确定

  • B. K/N

  • C. (N+1)/2

  • D. 1

因为是求成功的查找次数,所以与空白位置和大小K无关,我们假设我们的表如下图:

一共N个数,假设通过某种计算hash以后位置都在3这里:

当找33的时候,只需要找1次,找23的时候,需要找两次,以此类推,找71的时候,需要找N次。

平均要找 (1+2+3+……+N)/N ,采用高斯先生使用的加法运算,((1+N)*N/2)/N = (N+1)/2

选C

题目3:当采用线性探测冲突解决策略时,非空且有空闲空间的散列表中无论有多少元素,不成功情况下的期望查找次数总是大于成功情况下的期望查找次数。

  • A. √

  • B. ×

选√。这是废话。因为比如我们要找一个数,这个数存在,我们就一定能找到,但是如果不存在,我们就必须一直往下找,直到找到空位才行。所以相比于不成功的查找,成功的查找不需要一直找到空位。

题目4:直接映射需要存储  个短整型数字,大约是多少字节空间?

  • A. 40KB

  • B. 40MB

  • C. 40GB

  • D. 300GB

短整型即short型,一个占两个字节。

1KB = 1024B,1024KB = 1MB = 1048576B

4*10^10B ≈ 40 * 1024 * 1024 * 1024B = 40GB

选C。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dezeming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值