什么是C的散列表实现?我需要在mpicc编译器中使用它。删除功能不是必需的。C的散列表实现C
Q
C的散列表实现C
5
A
回答
4
glib中的那个非常好。不过不知道它是否太大和/或可能从其余的glib中分离出来。
如果不成功,Pearson hashing似乎是实现自己的一个很好的起点(这是一个针对具有8位寄存器的机器进行优化的散列函数)。
+0
glib很好,但它太大了,我不会建议将它包含在你的项目中。如果你还需要glib拥有的所有其他特性,我同意这将是一条路。 – 2010-03-23 11:25:05
3
如果提前知道密钥,则可以使用perfect hash生成器,以避免散列表中隐含的空间开销。
另一方面,如果你真的需要一个完整的散列表,我会建议一个Cuckoo Hashing(例如d-ary版本)的变体。
我已经满意地使用了Hopscotch Hashing的简化版本,即使在更高的负载因素下也能很好地工作。
相关问题
- 1. C++ Blowfish散列实现
- 2. C#散列表与C++散列表
- 3. C#列表实现
- 4. C散列表实现中的内存泄漏
- 5. 在C中寻找一个好的散列表实现
- 6. C++中的散列表?
- 7. C++散列表问题
- 8. 初始化散列表C++
- 9. 使用C++中的链接列表实现队列实现
- 10. 队列实现C++
- 11. C#队列实现#
- 12. 如何实现C#中的Dropbox列表
- 13. 德尔福5的散列表实现
- 14. 链接列表实现帮助 - Visual C++
- 15. 跳过列表实现C++ - XCode错误
- 16. 实现跳跃列表在C++
- 17. C++链接列表实现崩溃
- 18. Array-style链接列表实现C++
- 19. C++模板接口(列表实现)
- 20. C中的链表实现C
- 21. 在C++中的表实现
- 22. java的散列表,以C#字典
- 23. c#按键排序的散列表
- 24. c中的通用链接列表C++实现
- 25. SHA-1散列/ C++
- 26. 在c中实现队列#
- 27. C# - 实现线性列表的类“列表”
- 28. 链表实现在C#()
- 29. 在C#中实现“表”
- 30. 在c#中实现代表#
没有,实际上。此外,哈希表将是不变的。 – Alex 2010-03-23 12:14:32
在'一旦创建,以后不再改变'的意义上是不变的。 – Alex 2010-03-23 12:15:23
数据在编译时是已知的吗?然后,您可以使用Remo.D建议的完美哈希生成器。 – quinmars 2010-03-23 13:52:33