【问题标题】:How clustering in linear probing affect the search time线性探测中的聚类如何影响搜索时间
【发布时间】:2021-01-19 17:44:07
【问题描述】:

我了解线性探测中的问题,即由于后续索引将存在元素簇。但是我不明白The bigger the cluster gets, more it reduces the performance.这句话是如何降低哈希性能的?

【问题讨论】:

    标签: algorithm data-structures hash linear-probing quadratic-probing


    【解决方案1】:

    对于第一次插入空哈希表,我们保证不会遇到任何冲突。假设我们很不走运——我们的第二次插入哈希到与第一次相同的插槽,我们必须执行(非常小的)线性搜索来找到下一个空闲插槽。对于 n 个时隙的表,这种冲突的概率是 1/n。 现在我们在一张原本空荡荡的桌子上有两个并排。我们下一次插入与这个集群碰撞的几率是多少?不是第二次插入时的 1/n,而是现在 2/n - 机会增加了。一些东西散列到 k 槽簇的几率是 k/n,当它们这样做时,它们必须一直线性搜索到簇直到最后,不仅浪费时间,而且增加了簇的长度! 问题是该模式是自我强化的,并且当您的表变满时,您的插入时间可能会接近 O(n)。

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2011-02-07
      • 2013-05-06
      • 1970-01-01
      • 2016-02-27
      相关资源
      最近更新 更多