我有一个哈希表,其中绝大多数运行时访问遵循以下模式之一:
我也希望它能消耗尽可能少的内存。
其他标准操作必须可用,尽管它们的使用频率较低。
当然,所有“标准”哈希表实现,包括大多数高级语言的标准库,都具有所有这些功能。我正在寻找的是一个为第一个列表中的操作优化的实现。
常见实现的问题:
有效但不太理想的方案:
是否有一种专门的散列方案可以很好地适用于这种情况?
注意:我有一个很好的散列函数,它可以很好地工作在2的幂和素表大小上,并且可以用于双哈希,所以这不应该是一个问题。
发布于 2011-05-15 17:45:22
可扩展散列能帮上忙吗?通过遍历“目录”来迭代键应该是快速的。不确定“为值修改键”操作对此方案是否更好。
发布于 2011-05-13 06:43:15
根据您访问数据的方式,使用哈希表真的有意义吗?
由于您是主要用例,因此需要迭代--排序列表或btree可能是更好的数据结构。
您似乎并不需要构建哈希表所需的恒定时间随机数据访问。
发布于 2011-07-29 01:06:02
你可以做得比50%的负载因子杜鹃哈希。
两个包含四个项的散列函数可以让您轻松完成90%以上的任务。见本文:
http://www.ru.is/faculty/ulfar/CuckooHash.pdf
我正在构建一个预先计算的字典,使用一个布谷鸟散列,得到一个超过99%的负载因子,每个桶包含两个哈希函数和7个条目。
https://stackoverflow.com/questions/5982182
复制相似问题