【问题标题】:Confusion on hashing algorithm哈希算法的困惑
【发布时间】:2017-01-30 13:35:34
【问题描述】:

我很困惑为什么要从 Hi 中减去 Hi+1 来计算 k+i2。如果 Hi 表示方程中的 i2 那么 Hi+1 是如何分解为 k 的,为什么它是减法而不是加法?

【问题讨论】:

  • H_(i+1) = H_i + x。 x = H_(i+1) - H_i = (i+1)*(i+1) - i*i = 2*i+1。

标签: algorithm math hash time-complexity


【解决方案1】:

想法是这样的。在 [quadratic probing[https://en.wikipedia.org/wiki/Quadratic_probing) 中,搜索位置(涉及)H1、H2、H3, ... Hi, Hi + 1, ... 在一个循环中,可以避免重新计算i2 为每个 i

假设您已经计算出 Hi = k + i2。那么 Hi + 1 = k + (i + 1)2 = k + i2 + 2i + 1 = Hi + 2i + 1。所以,如果你已经计算了Hi,你只需要为Hi + 12i + 1 /sub>.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 2016-09-06
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2016-05-03
    相关资源
    最近更新 更多