【发布时间】:2017-01-23 01:32:50
【问题描述】:
关于哈希表的快速问题。 我目前正在实现一个哈希表 使用单独链接的组合 和开放寻址,限制长度 每个bucket的链表到一定的长度。
但是,我无法想出一种有效获取/删除的方法 有了这个哈希表结构,我想知道我是不是盲目愚蠢 或者是否有人曾经处理过类似的问题。
如果我尝试不断地使用冲突解决方案进行探测,我可能会永远进行下去,并且永远不会发现密钥是否不在表中。这是因为大多数探测方法不会覆盖每个桶,我宁愿不使用线性探测。
因为大多数探测方法不会覆盖每个存储桶,并且跟踪您查看过的存储桶的成本很高,如果一个存储桶被清空但探测路径中的后续存储桶没有,那么算法不能简单地停止一旦遇到空桶。
对于这个问题的任何想法,我将不胜感激。
谢谢!
【问题讨论】:
-
二进制搜索。如果您的数据库(散列图)包含 100 万个条目,您平均只需要约 20 次搜索操作,而不是 500.000 次。唯一的要求是,地图是有序的
-
我确实意识到一个好的旧二进制搜索的好处,但地图没有排序,我的印象是哈希图的全部意义在于它们不必排序(在这个词的形式算法意义上)以获得良好的性能
标签: algorithm data-structures hash hashmap