我已经搜索了 stackoverflow 和 google,但无法准确找到我正在寻找的内容,这是:
我有一组 4 字节无符号整数键,最多一百万个左右,我需要将其用作表的索引。最简单的方法是简单地使用键作为数组索引,但当我只使用几百万个条目时,我不想有一个 4GB 的数组!表条目和键是连续的,因此我需要一个保留顺序的哈希函数。
例如
keys = {56, 69, 3493, 49956, 345678, 345679,....etc}
我想把钥匙翻译成{0, 1, 2, 3, 4, 5,....etc}
键可以是任何整数,但总数不会超过 200 万个。由于键(和相应的数组条目)将被删除,因此该数字会有所不同,但新键的编号将始终高于先前编号最高的键。
在上面的示例中,如果密钥 69 被删除,则哈希 3493 返回的哈希整数应该为 1(而不是 2),因为它随后成为第二小的数字。
我希望我能正确解释这一点。以上是否可以通过任何快速有效的哈希解决方案实现?我需要翻译在 100 纳秒以下,但删除我预计需要更长的时间。我查看了 CMPH,但找不到任何不涉及从文件获取数据的使用示例。它需要在linux下运行,并使用纯C语言通过gcc编译。
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |