标签:hash

支持持久化的hash_map

stl ext中的unordered_map虽然用起来非常方便,但是不支持持久化,速度上也没有太多的优势。在我们的项目中,我们经常要加载key-value的词典,通常key是uint64_t,value可能是很多类型,也有可能不只一个字段。有人可能会问,为什么key会是uint64_t,其实我们通常的key是字符串,但是我们会先用md5或者cityhash等……

MinHash算法

MinHash是用于快速检测两个集合的相似性的方法。改方法由Andrei Broder(1997)发明,并最初用于搜索引擎AltaVista中来检测重复的网页的算法。它同样可以用于推荐系统和大规模文档聚类中。我们先介绍Jaccard相似度量。对于两个集合A与B,Jaccard相似性系数可以定义为:$$J(A,B)=\frac{\left|A\cap B\……

一致性哈希

之前参加了百度的一个技术沙龙,了解到了一致性哈希的概念,后来看人在微薄里面也有讨论。上次培训的时候,也有人提到了一致性哈希算法。但是由于时间原因,一直没对一致性哈希做深入的了解。今天阅读了几篇博文,发现一致性哈希的概念其实是比较简单的。我们采用传统的方法做分流的时候,比如将流量分给多台服务器进行处理的时候,我们会对流量取模,然后分给对应的机器进行处理。但是……

Google的CityHash算法

在学数据结构的时候,大家一定学过散列表,但很多人不知道算列表有什么用,最后只知道做题,这也许就是教育的悲哀吧。我开始也不知道,但是有一天,我学java的时候,用到了HashTable和HashSet的时候,就想到了散列表,网上查资料才发现散列表的巨大作用。言归正传,今天我们来讨论一下字符串哈希算法。常用的简单又高效字符串哈希算有BKDRHash,APHa……

VC HASH函数

    在程序很多地方都需要使用到MD5与SHA1之类的HASH函数,当然你可以自己实现,或去网上找实现的源码,但如果你在VC环境中的话,你就没有必要了,直接可以调用CAPI了,在程序中加上的头文件#include <wincrypt.h>     下面的函数可以完成计算Hash的功……