问题标签 [quadratic-probing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 二次探测散列函数 C++
我目前正在用 C++ 实现一个带有二次探测的哈希表。我首先实现了一个相当简单的哈希函数:将我的键(=字符串)的每个字母的 ASCII 值相加。因为我知道这根本不是一个好的哈希函数,所以我现在正在寻找一个更好的哈希函数。我已经用谷歌搜索了一段时间,但我似乎找到的都是类似的简单的。有人可以建议我一个好的哈希函数吗?使用 ASCII 值来计算索引是否有意义?还是应该改用单词的长度?
像我一样在单独的函数中实现碰撞处理是否有意义,或者我应该在 hashtfunction 本身中执行此步骤?
谢谢你的帮助!
hash - 线性探测可以导致二次聚类吗?
我目前正在研究散列和冲突,所有参考资料/教程都在说线性探测会导致初级聚类,而其他探测方案(例如二次探测和双散列)可能会导致二级聚类。是否存在线性探测也可能导致二次聚类的情况?
hash - Java中的二次探测
我正在尝试基于探测创建哈希表,但我怎么知道存在重复项?例如,我放置了 V1,它被放置在 1,然后 V2 生成相同的哈希值,所以通过二次探测,它被放置在 2,然后 V3 生成相同的哈希值(请不要判断我的哈希函数)并且通过二次探测被放置在5. 现在我删除了 v2,所以我将其标记为已删除。现在我尝试再次放置 v3,它检查索引 1 被占用并且键不匹配移动到索引 2,它已经删除了值,所以我放在那里。到目前为止,我有两个具有相同值 V3 的索引 2 和 5。我应该忽略删除的索引并将它们留空吗?第二个问题,如果我在搜索时进入无限循环,让我们说 V10 什么时候停止寻找?