如何处理索引大于32位的数据结构?

时间:2013-07-25 14:35:05

标签: c search indexing data-structures hashtable

我有一个80位大的索引及其相应的数据存储在我需要搜索的数据结构中。我们可以在哈希表中使用80位索引吗?或者是否有更好的替代数据结构,需要一段时间进行查找(搜索)?

修改

我认为我的问题不明确......这是设置---我有数百万个文件,我将生成一个80位大小的加密散列陷阱(以安全地表示文件),每个80 -bit trapdoor与其数据一起存储在像哈希表这样的数据结构中。现在,由于80位陷门的域大于散列表的范围,因此肯定会发生冲突。但我需要独特的< 80位陷门,数据>要存储在数据结构中的对。如何使用哈希表实现此目的?或者,如果有其他替代DS?

编辑2:

让我们说我创建了一个哈希表,并且在添加键时发生了冲突(按顺序说x& y)因为哈希函数生成了相同的索引( i)这些键。但是通过使用冲突解决技术(例如,双重哈希),y被插入到不是j的不同位置i。直到现在我才明白。现在,如果我想基于键y进行搜索,哈希表是否返回位置i或j?如果不是i,它将如何返回j(确切的所需记录)?它是否存储任何碰撞数量的计数器(探测器)?

2 个答案:

答案 0 :(得分:1)

您应该查看how hash tables work

要用作索引的对象通过哈希函数传递,结果值用于查找应放置/查找与该索引值关联的数据的内存位置。

如果需要持续时间查找,请转到哈希表。请务必使用适当的哈希函数。

答案 1 :(得分:0)

如果提供哈希函数,则可以在哈希表中使用任何您想要的索引。如果你想要不间断的时间访问,我不会提出更好的选择。