之前在《memcached 源碼閱讀之 字符串 hash 與 蒐集的一些 字符串 hash》中已經記錄了一些hash函數.html
如今看其本質算法.git
若是對算法不感興趣的人, 只須要看看這個小節就好了, 下面小節的都是經典書籍與人物的算法,都是本質算法穿上了一個馬甲.github
hash函數的本質是掃描字符串過程當中, 根據以前的結果, 當前位置,當前字符的值使用一個公式計算出當前結果.算法
固然稍微複雜的hash算法會考慮以前全部的的結果,位置以及字符, 甚至會迭代屢次.數據庫
這篇文章提到了一些書籍, 系統和一些人, 若是想要任何書籍的人均可以加公衆號要相關書籍.架構
核心代碼以下:memcached
在Brian Kernighan與Dennis Ritchie的《The C Programming Language》一書被展現而得名,是一種簡單快捷的hash算法,也是Java目前採用的字符串的Hash算法。函數
有人說將乘法分解爲位運算及加減法能夠提升效率.優化
但其實在Intel平臺上,CPU內部對兩者的處理效率都是差很少的;spa
在ARM這類RISC系統上因爲ARM內部使用Booth’s Algorithm來模擬32位整數乘法運算,它的效率與乘數有關.
在開源項目SDBM(一種簡單的數據庫引擎)中被應用而得名,它與BKDRHash思想一致,只是種子不一樣而已。
因Robert Sedgwicks在其《Algorithms in C》一書中展現而得名。
由Arash Partow發明的一種hash算法。
由Justin Sobel編的一種hash算法。
本算法是因爲Donald E. Knuth在《Art Of Computer Programming Volume 3》中展現而得名。
Unix system系統中使用的一種著名hash算法,後來微軟也在其hash_map中實現。
由Daniel J. Bernstein教授編的一種hash算法。
本算法是基於AT&T貝爾實驗室的Peter J. Weinberger的論文而發明的一種hash算法。
這個就不須要介紹了.
General Purpose Hash Function Algorithms
UNION架構篇 UNION優化篇 UNION誕生篇 union運營篇 談談cache 浪潮之巔 排名算法
曾是一名ACMer, 如今是鵝長視頻部門的後臺開發
這裏主要記錄工做中的技術架構與經驗,計算機相關的技術,數學、算法、生活上好玩的東西
長按二維碼關注做者, 瞭解做者發佈的最新好玩的東西