首页 > 试题广场 >

为提高散列(Hash)表的查找效率,可以采取的正确措施是(

[单选题]

为提高散列(Hash)表的查找效率,可以采取的正确措施是( )。
Ⅰ.增大装填(载)因子
Ⅱ.设计冲突(碰撞)少的散列函数
Ⅲ.处理冲突(碰撞)时避免产生聚集(堆积)现象

  • 仅Ⅰ
  • 仅Ⅱ
  • 仅Ⅰ、 Ⅱ
  • 仅Ⅱ、 Ⅲ
装填因子的计算公式为=关键字个数 / 表长度 这个装填因子和hash表的平均查找长度有关。如果要增大装填因子显然要么增加关键字个数,要么减少表长度,这两种方式都只会导致更多冲突的产生。因此1 不对
发表于 2017-05-22 22:22:52 回复(4)
聚集不能完全避免。所以3错。
发表于 2017-12-11 20:31:17 回复(2)
散列表的查找效率取决于:散列函数、处理冲突的方法和装填因子。
冲突的产生概率与装填因子成正比,故错。
采取合适的冲突处理方法可以避免聚集现象,也提高查找效率。
发表于 2017-03-02 15:58:31 回复(0)
D
发表于 2020-03-18 20:35:03 回复(0)
选D
因为要增加装填因子的大小,而装填因子=关键字个数/表长,所以两个变量都可变,因此Ⅰ不对
发表于 2020-07-16 21:22:51 回复(0)
不是说堆积现象无法完全避免吗?为什么III又是对的呢
发表于 2019-11-08 21:13:08 回复(0)

这里“堆积”应该是≠“冲突”的。

见王道数据结构辅导书哈希那一节的原话——“平方探测法是一种较好的处理冲突的方法,可以避免出现堆积问题”。

任何散列函数都不可避免冲突,所以合适的处理冲突的方法就是要把它们堆积在一起的分开,从而避免冲突。

emm文字游戏啊…

发表于 2019-09-12 07:27:25 回复(0)
散列表的查找性能在"没有冲突"的情况下,查找效率是最高的,O(1)
但是实际情况冲突不可避免,散列表的平均查找长度取决于如下如下因素:
1.散列表是否均匀---散列函数的好坏
2.处理冲突的方法--线性探测:产生堆积;链址处理:不会产生任何堆积
3.散列表的装填因子:装填因子标志着散列表的装满的程度,计算填入表中的记录个数/散列表的长度,记录越多,因子越大,产生冲突的可能性就越大。散列表的平均查找长度取决于装填因子而不是查找集合的记录个数

发表于 2019-07-30 16:04:36 回复(0)

我做过这个题,当时答案说聚焦不能避免只能减少所以d表达有误,因此选b。

发表于 2019-07-10 08:27:32 回复(0)
增加效率——少碰撞
发表于 2017-03-21 23:46:20 回复(0)
答案应该是B
发表于 2016-12-07 16:19:55 回复(2)