可扩展散列:为什么有人使用最重要的位?

时间:2014-11-10 23:07:39

标签: database algorithm hash

编码可扩展散列时,可以选择使用散列值的最高有效位或最低有效位来确定要散列到哪个桶。使用最低有效位有许多优点:

  • 当您将目录翻倍时,您可以只复制所有指针, 而不是必须创建一个交错它们的新目录。
  • 您可以简化对算法的讨论,甚至根本不讨论比特,只需使用模拟算法,就像使用散列一样。使用3个最低有效位来选择桶与h(x)= x mod 2 ^ 3相同。
  • 您不需要事先指定二进制数的宽度;如果您使用的是最重要的位,则需要考虑特定的位长。

我无法解决的问题是reference reference之后reference显示{{3}}显示可扩展散列完成最重要位的原因。据我所知,最重要的比特产生的唯一优势是纸上(或屏幕上)没有交叉线的图表。有这么多来源的最重要的部分而不是最不重要的有什么好的理由吗?

1 个答案:

答案 0 :(得分:2)

我终于回到了Fagin等人的original source paper。人。他们解决了这个问题:

"我们注意到如果我们使用了伪suff的后缀而不是前缀,那么 用于加倍目录的算法将特别容易:它本质上是 包括制作目录的非标题部分的第二个副本, 第一次复制后立即。但是,我们选择使用前缀 直观简单(因此,通过使用前缀,可以轻松访问密钥 假的顺序,而不是倒错的伪顺序)。 "

我不明白为什么他们认为这种方法更直观,因为你可以省去整个想法,而不是模块化算法,但看起来这至少是他们的理由。