什麼是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++散列函數,原始haser如何實現散列<int xkey>實現
- 6. C++中的列表實現
- 7. 在c實現的散列表中存儲整數?
- 8. 在C中尋找一個好的散列表實現
- 9. C散列表實現中的內存泄漏
- 10. 實現一個列表C
- 11. C++中的散列表?
- 12. 初始化散列表C++
- 13. C++散列表問題
- 14. 使用C++中的鏈接列表實現隊列實現
- 15. C#隊列實現#
- 16. 隊列實現C++
- 17. sha2的C實現中的錯誤散列輸出256
- 18. 如何實現C#中的Dropbox列表
- 19. 鏈接列表在C中的實現
- 20. C++中的鄰接列表實現
- 21. C中的鏈接列表實現
- 22. 德爾福5的散列表實現
- 23. 在C++中重新實現散列,rehash()方法中的問題
- 24. C++鏈表實現
- 25. C中的鏈表實現C
- 26. C++模板接口(列表實現)
- 27. 鏈接列表實現幫助 - Visual C++
- 28. C++鏈接列表實現崩潰
- 29. 跳過列表實現C++ - XCode錯誤
- 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