我有一个大小为 80 位的大型索引,其相应的数据存储在我需要搜索的数据结构中。我们可以在哈希表中使用 80 位索引吗?或者是否有更好的替代数据结构,需要恒定的时间进行查找(搜索)?
编辑:
我认为我的问题不清楚......这是设置 --- 我有数百万个文件,我将为其生成一个大小为 80 位的加密哈希陷门(以安全地表示文件),每个文件有 80 位位陷门将与其数据一起存储在类似哈希表的数据结构中。现在由于80位陷门的域大于哈希表的范围,所以肯定会发生冲突。但我需要将唯一的 <80 位陷门,数据> 对存储在数据结构中。如何使用哈希表实现这一点?或者还有其他替代DS吗?
编辑2:
假设我创建了一个哈希表,并且在添加键时发生了冲突(按顺序说 x
和 y
),因为哈希函数生成了相同的索引(i
) 这些键。但通过使用冲突解决技术(例如双散列),y
被插入到不同于 i
的不同位置 j
中。到现在为止我都明白了。现在,如果我想根据键 y 进行搜索,哈希表会返回位置 i 或 j 吗?如果不是i
,它将如何返回j
(确切的所需记录)?它是否存储碰撞次数的计数器(探针)?
最佳答案
您可能应该查看 how hash tables work .
要用作索引的对象通过哈希函数传递,结果值用于查找应放置/查找与该索引值关联的数据的内存位置。
如果您需要恒定时间查找,请使用哈希表。只要确保使用适当的哈希函数即可。
关于c - 如何处理索引大于 32 位的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17861042/