完美哈希函数
什么是完美哈希函数
完美哈希函数(Perfect Hash Function,简称PHF)就是没有冲突的哈希函数。也就是,函数H将N个KEY值映射到M个整数上,这里M>=N,而且,对于任意的KEY1、KEY2,都有H(KEY1) != H(KEY2)。如果M等于N,则H是最小完美哈希函数(Minimal Perfect Hash Function,简称MPHF)。
什么时候使用PHF和MPHF
通常情况下,PHF或MPHF是针对静态集合的。也就是,在使用PHF或MPHF时,所有的 KEY 值是事先已知并且固定的。
使用PHF和MPHF的一般流程
- (准备阶段)将已知的所有的 KEY 值传给PHF或MPHF生成算法,生成PHF或MPHF以及相应的数据;
- (使用阶段)调用已有的PHF或MPHF以及相应的数据快速计算哈希值并进行相应的操作。
其实在实际使用中我们只关心步骤2,但步骤1的生成算法却是PHF或MPHF的关键。