0

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

编辑:

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

编辑 2:

假设我创建了一个哈希表,并且在添加键时发生了冲突(比如x&y按顺序),因为哈希函数i为这些键生成了相同的索引 ( )。但是通过使用冲突解决技术(例如双重散列),y将其插入到不同的位置j,而不是i. 我明白到这一步。现在,如果我想根据键 y 进行搜索,哈希表会返回位置 i 还是 j?如果不是i,它将如何返回j(确切的所需记录)?它是否存储碰撞次数的任何计数器(探针)?

4

2 回答 2

1

您或许应该回顾一下哈希表是如何工作的。

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

如果您需要恒定时间查找,请使用哈希表。请务必使用适当的哈希函数。

于 2013-07-25T16:18:05.890 回答
0

如果您提供哈希函数,您可以使用任何您想要的作为哈希表中的索引。如果您想要恒定的时间访问,我认为没有更好的选择。

于 2013-07-25T14:38:11.737 回答