我目前在学期末附近的数据结构课程中,并且已经分配了一个项目,我们正在实施链接哈希表来存储和检索密钥。我们已经被赋予了相当大的自由度,我们将如何设计我们的哈希表实现,但是对于奖励要点,我们被告知要尝试找到一个散列函数,它将我们的密钥(唯一字符串)一致且随机地桌子。试图散列字符串统一的哈希表?
我已经选择了使用ELF散,看到这里http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx
我的问题是:有了这个哈希函数返回一个整数,但我无法看到这是如何用于帮助指定将我的密钥放入散列表中。我可以简单地这样做:index = ELFhash(String key)%tableSize,但是这是否会破坏首先使用ELF哈希的目的?
此外,我选择了我的冲突解决策略为双重哈希。有没有一种很好的方法来确定一个合适的二次哈希函数来查找跳转?我的哈希表不会是一个常量大小(字符串集将被添加并从我哈希的数据集中删除,我将在每次添加和删除迭代之后重新哈希它们以使负载因子为.75 ),所以我很难做出像k%n这样的事情,其中n是一个与我的表格大小相对的数字。
感谢您花时间阅读我的问题,并让我知道您的想法!