【问题标题】:Is polynomial hashing function efficient?多项式哈希函数是否有效?
【发布时间】:2016-02-28 13:09:05
【问题描述】:

我想知道为什么没有谈论多项式哈希函数的效率(在时间和空间方面)?在我的书中常数的推荐值是 33、37、39 和 41,但它们是相当大的数字。如果我的字符串是 15 a's (aaaaaaaa..) 那么计算 (41^15)(97)+(41^14)(97)+...... (97 因为它a) 的 ASCII 值是一项艰巨的任务,如果我有百万个条目,那么您可以想象。那么请问有人可以回答我的两个问题吗?

  1. 是我对这个函数的时间和空间复杂度有误解还是我对它的理解是正确的?

  2. 如果我是对的,那么为什么我们需要使用它?我们能找到其他更好更有效的替代方案吗?

【问题讨论】:

  • 这只是每个项目的乘法和加法,没什么大不了的

标签: performance data-structures hash hashtable hashcode


【解决方案1】:

它是这样实现的:

int h=0;
foreach (character c in string)
{
    h = (h*41)+c;
}
return h;

如您所见,它不占用大量空间并且速度非常快。

【讨论】:

  • 非常感谢!这太美了!
猜你喜欢
  • 2017-11-19
  • 2011-02-04
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 2015-07-04
  • 2015-11-27
相关资源
最近更新 更多