table教學 - simple hash function




在C中尋找一個好的哈希表實現 (10)

Apache的APR庫有自己的hash-implementation 。 它已經被移植到Apache運行的任何東西上, Apache許可證也相當自由。

我主要對字符串鍵感興趣。 有人能指點我去圖書館嗎?


Dave Hanson的C接口和實現包括一個精細的哈希表和其他幾個精心設計的數據結構。 還有一個很好的字符串處理接口。 如果你能負擔得起,這本書很棒,但即便沒有,我發現這個軟件設計得非常好,小到足以完全學習,並且易於在幾個不同的項目中重複使用。





下載tcl並使用他們經過時間驗證的tcl哈希函數。 這很容易。 TCL API已有詳細記錄。


對於字符串, Judy數組可能很好。

Judy數組是一種複雜但非常快速的關聯數組數據結構,用於使用整數或字符串鍵存儲和查找值。 與普通數組不同,Judy數組可能稀疏; 也就是說,它們可能具有大範圍的未分配索引。

這是C中Judy庫

AC庫,提供最先進的核心技術,實現稀疏動態數組。 簡單地使用空指針聲明Judy數組。 Judy數組僅在填充時才佔用內存,但如果需要,可以增長以利用所有可用內存。

其他參考,
這個Wikipedia哈希實現參考有一些C開源鏈接。
此外, cmph - C中的Minimal Perfect Hashing Library支持多種算法。








hash