首页 > 试题广场 >

用哈希(散列)方法处理冲突(碰撞)时可能出现堆积(聚集)现象

[单选题]

用哈希(散列)方法处理冲突(碰撞)时可能出现堆积(聚集)现象,下列选项中,会受堆积现象直接影响的是 ()

  • 存储效率
  • 数列函数
  • 装填(装载)因子
  • 平均查找长度
平均查找长度是怎么被影响的?
发表于 2017-09-09 21:49:55 回复(1)
什么是装填因子?
举个例子,你要对5个对象进行hash,而内存中,准备了20个位置,那么还有15个空位,最后装填因子就是5/20 = 0.25,所以装填因子越小,产生冲突的可能越小。
【改过来啦,谢谢大家的提醒!】
编辑于 2018-03-17 17:16:57 回复(10)
首先装填因子是不会受影响的,装填因子反应的是空间利用率;平均查找长度之所以受影响是因为,如果堆积比较严重(特别是在冲突处理之后出现堆积),每次查找都需要进行多次的比较才能找到所需要的值
发表于 2018-10-10 12:29:04 回复(0)
为何存储效率不受直接影响?堆积得越多,冲突可能性不是会越大?探测的用时不是会越长吗?
编辑于 2016-12-25 13:47:29 回复(7)

聚集:因为表的空地址既向它的同义词开放,又向它的非同义词开放,所以不可避免会造成聚集现象。

D. 聚集比较严重后,查找需要不停地解决冲突,效率变低。

A.存储是基于查找的,所以不能算作是被直接影响的。

B. 散列函数并不考虑聚集问题,不受影响。

C. 装载因子是已装元素个数/总表长,反应一个装满程度。与聚集并不直接相关。

【by微信小程序:CS刷题】
【by:数据结构考研冯强】
编辑于 2020-05-21 14:52:54 回复(0)
补充下关于A的解释。哈希表的存储方式的实现有多种,如纯数组,或是数组配合链表等,如果是后者(见下图),则存储效率不受影响。

发表于 2019-06-22 23:56:39 回复(6)
装填因子是哈希表可装填的元素个数和表长度的比值,反映哈希表空间的装满程度及表空间的利用效率。装填因子可以在设计哈希表的时候可以设置其值大小,一般来说小于等于1(链地址法可以装填元素数量可以超过哈希表表长,所以链地址法装填因子可大于1)。
发表于 2017-04-28 14:34:47 回复(2)
装载因子是神码
发表于 2016-12-04 20:12:41 回复(1)
不理解。。只有先存了才能查呀,在存的时候发现有堆积,直接影响不是指第一个受影响的嘛,那不应该是存储效率嘛
发表于 2018-06-01 17:20:20 回复(0)
装填因子α=填入的数个数/地址总容量,即堆积不影响α的大小
编辑于 2021-11-26 17:37:04 回复(0)