[Revisit.SolidMCP] Hash Algorithms

Hash总是免不了的,那么要关注的不过是选择什么样的Hash算法。高深的算法, Piaoger自然是写不出,但怎么着也能找两个比较帅的,口碑比较好的。

用Google搜索了一下,然后看了Google Sparsh Hash, HyperTable等几个开源库,似乎也就不外乎那么三四种:

----------------------------------------------------------------------------

>> Paul Hsieh's SuperFastHash

从这厮的名字看来,那肯定是超级快。

http://www.azillionmonkeys.com/qed/hash.html

>> MurmurHash3

这家伙作者似乎已经被Google收编。

它的速度似乎很快,在HyperTable中是默认的Hasher。

http://code.google.com/p/smhasher/

>> Lookup3

似乎比较牛X,而且在2007年算法还有更新。

http://burtleburtle.net/bob/hash/doobs.html

>> Thomas Wang的Integer Hash

主要是针对Integer Type,在不少开源库中有应用。

http://www.cris.com/~Ttwang/tech/inthash.htm

----------------------------------------------------------------------------

话说回来,其实SuperFastHarsh、MurmurHash3和Lookup3其实效率都差不了多少,从HyperTable的代码看来,MurmurHash3号称更快一些。

在Lookup3页面有对这些Hasher的点评,我们能找到更多的专业点评。

Material:

http://blog.clawpaws.net/post/2007/04/22/Good-Hash-Functions

-Piaoger

posted on 2011-05-18 04:34  飘行天下  阅读(349)  评论(0编辑  收藏  举报

导航