具有已知键数的字符串的完美哈希

时间:2013-03-13 16:36:38

标签: c++ hash perfect-hash

当要散列的元素数量已知时,是否可以从字符串到整数具有完美的散列函数?通过完美哈希函数,我的意思是没有碰撞的可能性。

基本上我正在从文件中读取多个表的签名(例如id,name,address)。不同的表可能具有共同的属性(例如名称),但在不同的位置(即列)。我想问一下:什么是table1 [“name”]?或table2 [“name”]。

更新:我更愿意学习自己做而不是使用已有的东西。

1 个答案:

答案 0 :(得分:4)

GNU gperf

GNU gperf是一个完美的哈希函数生成器。对于给定的字符串列表,它以C或C ++代码的形式生成散列函数和散列表,用于根据输入字符串查找值。哈希函数是完美的,这意味着哈希表没有冲突,哈希表查找只需要一个字符串比较。