Murmur哈希

✍ dations ◷ 2024-12-23 09:23:15 #散列函数

MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。由Austin Appleby在2008年发明, 并出现了多个变种, 都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。

当前的版本是MurmurHash3, 能够产生出32-bit或128-bit哈希值。

较早的MurmurHash2能产生32-bit或64-bit哈希值。对于大端存储和强制对齐的硬件环境有一个较慢的MurmurHash2可以用。MurmurHash2A 变种增加了Merkle–Damgård 构造,所以能够以增量方式调用。 有两个变种产生64-bit哈希值:MurmurHash64A,为64位处理器做了优化;MurmurHash64B,为32位处理器做了优化。MurmurHash2-160用于产生160-bit 哈希值,而MurmurHash1已经不再使用。

最初的实现是C++的,但是被移植到了其他的流行语言上,包括 Python, C, C#, Perl, Ruby, PHP, Haskell,、Scala、Java和JavaScript等。

这个算法已经被若干开源计划所采纳,最重要的有libstdc++ (4.6版)、Perl、nginx (不早于1.0.1版)、Rubinius、 libmemcached (Memcached的C语言客户端驱动)、maatkit、Hadoop、Kyoto Cabinet以及RaptorDB。

相关

  • 磺胺二甲嘧啶磺胺二甲嘧啶是一种磺胺类药物,其INN名称是“Sulfamethazine”。该药物可用于治疗支气管炎、前列腺炎,以及泌尿道感染等病症。该药物在血液中的半衰期暂时未知,在大鼠体内的LD5
  • CBa有机钡化学是研究碳-钡键的化合物的化学分支。有机钡化合物的反应活性比有机钙和有机锶的要大,但是稳定性比它们小。金属钡和卤代烃反应,可以得到RBaX,在反应中通常会先加入碘
  • 塞擦音塞擦音(affricate consonant),或破裂摩擦音,辅音发音方法的一种。由塞音及同一器官产生的摩擦音(经常是同一器官发出的辅音)构成。当符号成对出现时,左边的是清音,右边的是浊音。阴
  • 蔷薇科蔷薇科(学名:Rosaceae)约有124属3300余种,广布于全球,以温带居多;中国约有55属1000余种。台湾有28属153种。绝大多数为木本,少数为草本;茎有明显的皮孔。单叶或复叶,一般互生,多数有托
  • PD-1n/an/an/an/an/an/an/an/an/an/a细胞程序死亡-配体1(英语:Programmed cell death 1 ligand 1,PD-L1)也称为表面抗原分化簇274('cluster of differentiation 274,CD274)或 B7同源体1
  • 铁砧铁砧是一种常用工具,其最简单的形式是有一个用以放置锻打物体坚硬平面的金属块。铁砧的惯性能够使锻打工具的能量转移到工件上。在大多数情况下,砧用于金属锻造方面。在现代焊
  • 布尔根兰州布尔根兰州(德语:Burgenland,德语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gent
  • 弗里曼·戴森弗里曼·约翰·戴森(英语:Freeman John Dyson,1923年12月15日-2020年2月28日),美籍英裔数学物理学家,普林斯顿高等研究院教授。戴森提出了戴森变换。1923年12月15日,戴森在英国伯克
  • 脊海百合脊海百合(学名:),又名脊百合,是一属已灭绝的海百合,其化石主要分布在欧洲和北美。本属下至少有两个物种。它们是一群结构精巧的无茎海百合,长有很小的球形萼。有十条肢臂,每条肢臂各
  • 阿马多·布杜阿马多·布杜(西班牙语:Amado Boudou,西班牙语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Cod