HashTable原理与实现
生活随笔
收集整理的這篇文章主要介紹了
HashTable原理与实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
memcached中hashtable部分的源碼,hash部分的源碼主要分布在assoc.h/c、hash.h/c中,總得來說代碼比較簡單,這里就稍微介紹一下。
???????? hashtable通常包括哈希函數(shù)和解決沖突的方法兩個最主要的因素,memcached使用的哈希函數(shù)為Bob Jenkins在1996年發(fā)明的,定義位于hash.h中,實現(xiàn)在hash.c中,作者與2006年時提出另一個新的hash算法,其具有更快的速度(近2倍)和更大的吞吐量,詳情請參照:http://burtleburtle.net/bob/hash/doobs.html
解決沖突的方法,memcached中采用了鏈地址法(或拉鏈法),從數(shù)據(jù)結構書中截取的一個采用鏈地址法(哈希函數(shù)為:key MOD 13)解決沖突的示意圖:
參考:memcached源碼學習-hashtable
網(wǎng)上一些哈希實現(xiàn)可以參考:
C語言的HashTable簡單實現(xiàn)
深入理解HashMap
總結
以上是生活随笔為你收集整理的HashTable原理与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: memset函数使用详解
- 下一篇: PHP内核中的哈希表结构