为提高哈希(Hash)表的查找效率,可以采取的正确措施是______。
Ⅰ.增大装填因子
Ⅱ.设计冲突少的哈希函数
Ⅲ.处理冲突时避免产生堆积现象
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. 仅Ⅱ、Ⅲ
装填(载)因子α越大,发生冲突的可能性越大,所以Ⅰ错误。因为哈希表是由哈希函数和处理冲突两部分组成的,查找效率与这两部分有关,所以Ⅱ和Ⅲ是正确的。选D
为提高哈希表的查找效率,正确的措施是: **Ⅱ.设计冲突少的哈希函数** **Ⅲ.处理冲突时避免产生堆积现象** ### 解释: 1. **Ⅱ. 设计冲突少的哈希函数:** - 设计一个好的哈希函数可以尽量减少碰撞(同义词)的发生,从而提高查找效率。好的哈希函数会将键均匀分布到哈希表的不同位置,减少冲突的概率。 2. **Ⅲ. 处理冲突时避免产生堆积现象:** - 当发生冲突时,处理方法的选择非常重要。如果使用开放地址法,线性探测可能会导致“堆积”现象(即多个冲突的键聚集在一起,形成一个连续的块)。通过使用二次探测或双重哈希等方法,可以有效减少堆积现象,提高查找效率。 ### 错误选项: 1. **Ⅰ. 增大装填因子:** - **增大装填因子**(Load Factor)指的是在不增加哈希表大小的情况下增多存储的元素数目,导致每个槽可能会有更多的元素。增大装填因子通常会导致更多的冲突,进而降低查找效率。所以,正确的做法是控制装填因子,使其保持在一个较低水平(通常是0.7以下),以减少冲突。 ### 结论: 选择 **Ⅱ** 和 **Ⅲ** 是正确的措施,而 **Ⅰ** 不应采取,因此正确的答案是 **Ⅱ 和 Ⅲ**。
这题是否有问题?@admin
admin 回复 amden: 已修正,题目有点争议,建议选B
1544,一样的题选B,为什么这里就选D了
zhangbou 回复 悠哉悠哉小碧绿: 选b吧,可能是因为无法避免,只能减少
本题有争议
减小装填因子可以...
用户登录可进行刷题及查看答案
减小装填因子可以提高散列表的查找效率;处理冲突(碰撞)时可以减少,但不能“避免”产生聚集(堆积)现象,故选 B
III错在“避免”二字。
本题选B。
散列表查找效率取决于散列函数、冲突处理方法和装填因子。
装填因子越大说明散列表填的越满,越容易发生冲突。I错误。
合理的散列函数能够提高查找效率,最理想的情况是没有冲突发生,每个元素的查找长度均为 1 。II正确。
元素聚集会增大查找长度,所以尽量避免。III正确。
本题选D。
登录后提交答案