第18讲 散列表 课堂互动 显示答案 | 返回首页

作者:欧新宇(Xinyu OU)

最后更新:2023-12-19


【课前自测18】

1. 只能在顺序存储结构上进行的查找方法是()。
A. 顺序查找法
B. 折半查找法
C. 树型查找法
D. 散列查找法

2. 散列查找一般适用于()的情况下的查找。
A. 查找表为链表
B. 查找表为有序表
C. 关键字集合比地址集合大得多
D. 关键字集合与地址集合之间存在对应关系

3.【2022统考真题】下列因素中,影响散列(哈希)方法平均查找长度的是()。
Ⅰ. 装填因子
Ⅱ. 散列函数
Ⅲ. 冲突解决策略
A. 仅Ⅰ、Ⅱ
B. 仅Ⅰ、Ⅲ
C. 仅Ⅱ、Ⅲ
D. Ⅰ、Ⅱ、Ⅲ

4. 设有一个含有200个表项的散列表,用线性探测法解决冲突,按关键字查询时找到一个 表项的平均探测次数不超过1.5,则散列表项应能够容纳()个表项(设查找成功的平均查找长度为 ASL = [1 + 1/(1-a)]/2,其中α为装填因子)。
A. 400
B. 526
C. 624
D. 676

5. 假定有 K 个关键字互为同义词,若用线性探测法把这K个关键字填入散列表,至少要进行()次探测。
A. K-1
B. K
C. K+1
D. K(K+1)/2

【课堂互动18.1】处理冲突的方法

1. 设散列表长 m = 14,散列函数为 H(key) = key%11,表中仅有4个结点 H(15) = 4,H(38)=5,H(61)=6,H(84)=7, 若采用线性探测法处理冲突,则关键字为49的结点地址是()。
A. 8
B. 3
C. 5
D. 9

2.【2011统考真题】为提高散列表的查找效率,可以采取的正确措施是()。
Ⅰ. 增大装填(载)因子
Ⅱ. 设计冲突(碰撞)少的散列函数
Ⅲ. 处理冲突(碰撞)时避免产生聚集(堆积)现象
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. 仅Ⅱ、Ⅲ

3.【2014统考真题】用哈希(散列)方法处理冲突(碰撞)时可能出现堆积(聚集)现象. 下列选项中,会受堆积现象直接影响的是()。
A. 存储效率
B. 散列函数
C. 装填(装载)因子
D. 平均查找长度

4.【2018统考真题】现有长度为7、初始为空的散列表HT,散列函数H(k)=k%7,用线性探测再散列法解决冲突。将关键字22,43,15依次插入HT 后,查找成功的平均查找长度是() 。
A. 1.5
B. 1.6
C. 2
D. 3

5.【2019统考真题】现有长度为11且初始为空的散列表HT, 散列函数是H(key)=key%7,采用线性探查(线性探测再散列)法解决冲突。将关键字序列87,40,30,6,11,22,98,20依次插入HT 后 ,HT查找失败的平均查找长度是()。
A. 4
B. 5.25
C. 6
D. 6.29


【扩展练习18】

1. 下列关于散列表的说法中,正确的是()。
Ⅰ. 若散列表的填装因子α<1,则可避免碰撞的产生
Ⅱ. 散列查找中不需要任何关键字的比较
Ⅲ. 散列表在查找成功时平均查找长度与表长有关
Ⅳ. 若在散列表中删除一个元素,不能简单地将该元素删除
A.Ⅰ 和 Ⅳ
B.Ⅱ 和 Ⅲ
C.Ⅲ  
D. Ⅳ

2. 在开放定址法中散列到同一个地址而引起的“堆积”问题是由于()引起的。
A. 同义词之间发生冲突
B. 非同义词之间发生冲突
C. 同义词之间或非同义词之间发生冲突
D. 散列表“溢出”

3. 下列关于散列冲突处理方法的说法中,正确的有()。
Ⅰ. 采用再散列法处理冲突时不易产生聚集
Ⅱ. 采用线性探测法处理冲突时,所有同义词在散列表中一定相邻
Ⅲ. 采用链地址法处理冲突时,若限定在链首插入,则插入任意一个元素的时间相同
Ⅳ. 采用链地址法处理冲突易引起聚集现象
A.Ⅰ和Ⅲ
B.Ⅰ、Ⅱ和Ⅲ
C.Ⅲ和Ⅳ
D.Ⅰ和 Ⅳ

4. 对包含n个元素的散列表进行查找,平均查找长度()。
A. O(log₂n)
B. O(1)
C. 不直接依赖于n
D. 直接依赖于表长m

5. 采用开放定址法解决冲突的散列查找中,发生聚集的原因主要是()。
A. 数据元素过多
B. 负载因子过大
C. 散列函数选择不当
D. 解决冲突的方法选择不当

6. 一组记录的关键字为 {19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为 H(key) = key%13,散列地址为1的链中有()个记录。
A. 1
B. 2
C. 3
D. 4

7. 在采用链地址法处理冲突所构成的散列表上查找某一关键字,则在查找成功的情况下,所探测的这些位置上的关键字值()。
A. 一定都是同义词
B. 不一定都是同义词
C. 都相同
D. 一定都不是同义词

8. 在采用线性探测法处理冲突所构成的散列表上查找某一关键字,则在查找成功的情况下,所探测的这些位置上的关键字值()。
A. 一定都是同义词
B. 不一定都是同义词
C. 都相同
D. 一定都不是同义词

9. 若采用链地址法构造散列表,散列函数为 H(key) = key mod 17,则这些链的链首指针构成一个指针数组,数组的下标范围为()。
A. 0~17
B. 1~17
C. 0~16
D. 1~16

10. 将10个元素散列到100000个单元的散列表中,则()产生冲突。
A. 一定会
B. 一定不会
C. 仍可能会
D. 不确定

第18讲 散列表 课堂互动 显示答案 | 返回首页