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

标签 c search indexing data-structures hashtable

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

编辑:

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

编辑2:

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

最佳答案

您可能应该查看 how hash tables work .

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

如果您需要恒定时间查找,请使用哈希表。只要确保使用适当的哈希函数即可。

关于c - 如何处理索引大于 32 位的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17861042/

相关文章:

检查一个字符是否等于\in C

c - 如何仅使用文件指针正确遍历C循环

PHP+Ajax 传递输入关键字进行实时搜索

xcode - Xcode "open quickly"和 Textmate "Go to file"使用什么样的搜索算法?

c++ - Hashmap 适用于 X 个元素?

postgresql - Postgresql 9.2+ 是否在其他索引中包含 PK 字段

c - 使用#define 替换连续的字符串

c - free() 导致 SEG 故障 C

sql - 搜索sql表的所有字段时出现语法错误

mysql 最佳索引顺序 (FK, key, value)