客观题——散列冲突

选择题
1.散列冲突可以被描述为: (1分)
选项
A    两个元素除了有不同键值,其它都相同
B    两个有不同数据的元素具有相同的键值
C    两个有不同键值的元素具有相同的散列地址
D    两个有相同键值的元素具有不同的散列地址
解析:经过散列函数变换后,可能将不同的关键字映射到同一个散列地址上,这种现象称为冲突。

2.若N个关键词被散列映射到同一个单元,并且用分离链接法解决冲突,则找到这N个关键词所用的比较次数为:(2分)
选项
A    N(N+1)/2
B    N(N−1)/2
C    N+1
D    N
解析:查找第一个1次,第二个2次,…,第N个N次,共N(N+1)/2次。

3.采用线性探测冲突解决策略,hi(k)=(H(k)+i)mod 11,将散列函数值分别等于2、2、3、3的四个对象a1、a2、a3、a4都插入一个大小为11的空散列表(哈希表)中。在不同的插入顺序中,哪句有关插入后散列表平均成功查找长度的判断是错的? (2分)
选项
A    按a1、a2、a3、a4顺序和按a1、a3、a4、a2顺序,平均成功查找长度一样
B    按a1、a3、a2、a4顺序和按a3、a1、a2、a4顺序,平均成功查找长度一样
C    按a1、a3、a2、a4顺序和按a4、a1、a2、a3顺序,平均成功查找长度一样
D    按任何插入顺序,其平均成功查找长度都一样
解析:

4.__是HASH查找的冲突处理方法: (2分)
选项
A    求余法
B    平方取中法
C    二分法
D    开放地址法
解析:几个基本的冲突处理方法:开放地址法、平方探测法、双散列探测法、再散列法和分离链接法。

5.下面关于哈希查找的说法,不正确的是( )。 (2分)
选项
A    采用链地址法处理冲突时,查找一个元素的时间是相同的
B    采用链地址法处理冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的
C    用链地址法处理冲突,不会引起二次聚集现象
D    用链地址法处理冲突,适合表长不确定的情况
解析:如果两个元素在同一个链表中,查找时间肯定不同。

6.假定有K个关键字互为同义词,若用线性探测法把这K个关键字存入散列表中,至少要进行多少次探测? (2分)
选项
A    K−1
B    K
C    K+1
D    K(K+1)/2
解析:第一个关键字需要探测一次,以后的关键字均比前一个关键字要多探查一次,则共需探测K(K+1)/2次。

7.采用线性探测法解决冲突时所产生的一系列后继散列地址: (1分)
选项
A    必须大于等于原散列地址
B    必须小于等于原散列地址
C    可以大于或小于但不等于原散列地址
D    对地址在何处没有限制
解析:循环后会在原散列地址前。

8.将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。散列函数为:H(Key)=Key%11,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少? (3分)
选项
A    0.27
B    0.45
C    0.64
D    0.73
解析:5/11=0.45。

9.给定散列表大小为11,散列函数为H(Key)=Key%11。采用平方探测法处理冲突:h​i​​(k)=(H(k)±i​2)%11将关键字序列{ 6,25,39,61 }依次插入到散列表中。那么元素61存放在散列表中的位置是: (2分)
选项
A    5
B    6
C    7
D    8
解析:6-1=5。

10.给定散列表大小为11,散列函数为H(Key)=Key%11。按照线性探测冲突解决策略连续插入散列值相同的4个元素。问:此时该散列表的平均不成功查找次数是多少? (2分)
选项
A    1
B    4/11
C    21/11
D    不确定
解析:(5+4+3+2+1+1+1+1+1+1+1)/11。

11.若用平方探测法解决冲突,则插入新元素时,以下陈述正确的是: (1分)
选项
A    插入一定可以成功
B    插入不一定能成功
C    插入一定不能成功
D    若散列表容量为质数,插入就一定可以成功
解析:有可能溢出,插入失败。

12.给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用分离链接法解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(2分)
选项
A    1, 3, 3, 9, 4, 9, 9
B    1, 3, 4, 9, 7, 5, -1
C    1, 3, 4, 9, 5, 0, 8
D    1, 3, 4, 9, 5, 0, 2
解析:除余即可得下标。

13.给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用线性探测解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(2分)
选项
A    1, 3, 3, 9, 4, 9, 9
B    1, 3, 4, 9, 7, 5, -1
C    1, 3, 4, 9, 5, 0, 8
D    1, 3, 4, 9, 5, 0, 2
解析:冲突往右移到空位。

14.给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用平方探测解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(2分)
选项
A    1, 3, 3, 9, 4, 9, 9
B    1, 3, 4, 9, 7, 5, -1
C    1, 3, 4, 9, 5, 0, 8
D    1, 3, 4, 9, 5, 0, 2
解析:冲突+1-1移到空位。

15.给定输入序列 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 以及散列函数 h(X)=X%10。如果用大小为10的散列表,并且用开放定址法以及一个二次散列函数h2 (X)=7−(X%7)解决冲突,则输入各项经散列后在表中的下标为:(-1表示相应的插入无法成功)(2分)
选项
A    1, 3, 3, 9, 4, 9, 9
B    1, 3, 4, 9, 7, 5, -1
C    1, 3, 4, 9, 5, 0, 8
D    1, 3, 4, 9, 5, 0, 2
解析:

16.给定散列表大小为17,散列函数为H(Key)=Key%17。采用平方探测法处理冲突:hi(k)=(H(k)±i2)%17将关键字序列{ 6, 22, 7, 26, 9, 23 }依次插入到散列表中。那么元素23存放在散列表中的位置是:(3分)
选项
A    0
B    2
C    6
D    15
解析:6-4=2。

17.给定散列表大小为17,散列函数为H(Key)=Key%17。采用平方探测法处理冲突:h​i(k)=(H(k)±i2)%17将关键字序列{ 6, 22, 7, 26, 9, 40 }依次插入到散列表中。那么元素40存放在散列表中的位置是:(3分)
选项
A    2
B    6
C    8
D    15
解析:6-4=2。

18.将元素序列{18, 23, 4, 26, 31, 33, 17, 39}按顺序插入一个初始为空的、大小为13的散列表中。散列函数为:H(Key)=Key%13,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少? (3分)
选项
A    0.54
B    0.63
C    0.31
D    0.62
解析:4/13=0.31。

19.给定散列表大小为11,散列函数为H(Key)=Key%11。按照线性探测冲突解决策略连续插入散列值相同的5个元素。问:此时该散列表的平均不成功查找次数是多少?(2分)
选项
A    26/11
B    5/11
C    1
D    不确定
解析:(6+5+4+3+2+1+1+1+1+1+1)/11。

20.现有长度为 7、初始为空的散列表HT,散列函数H(k)=k%7,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT后,查找成功的平均查找长度是:(2分)
选项
A    1.5
B    1.6
C    2
D    3
解析:(2+3+4+5)/4=2。

21.现有长度为 11 且初始为空的散列表 HT,散列函数是 H(key)=key%7,采用线性探查(线性探测再散列)法解决冲突。将关键字序列 87,40,30,6,11,22,98,20 依次插入到 HT 后,HT 查找失败的平均查找长度是:(2分)
选项
A    4
B    5.25
C    6
D    6.29
解析:(9+8+7+6+5+4+3)/7=6。

22.设数字 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 在大小为10的散列表中根据散列函数 h(X)=X%10得到的下标对应为 {1, 3, 4, 9, 5, 0, 2}。那么继续用散列函数 “h(X)=X%表长”实施再散列并用线性探测法解决冲突后,它们的下标变为:(3分)
选项
A    11, 3, 13, 19, 4, 0, 9
B    1, 3, 4, 9, 5, 0, 2
C    1, 12, 9, 13, 20, 19, 11
D    1, 12, 17, 0, 13, 8, 14
解析:再散列将散列表扩大一倍,表长变为20,然后取最近的质数23作为表长。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值