什么是C的良好哈希表实现?我需要将它与mpicc编译器一起使用。删除功能不是必需的。
答案 0 :(得分:4)
glib中的那个非常好。但不确定它是否太大和/或可能与其余的glib分离。
如果不这样做,Pearson hashing似乎是实现自己的一个很好的起点(它是针对具有8位寄存器的机器优化的哈希函数)。
答案 1 :(得分:3)
如果密钥都是事先已知的,您可以使用perfect hash生成器来避免哈希表中隐含的空间开销。
另一方面,如果你真的需要一个完整的哈希表,我会建议Cuckoo Hashing的变体(例如d-ary版本)。
我已经满意地使用了Hopscotch Hashing的简化版本,即使在较高的负载因子下也能很好地工作。