根据CLRS第267页,定义了一类统一的哈希函数,但是我想知道在对一组密钥进行哈希时如何应用这些函数。
是在每次要计算哈希值时随机选择一个函数,还是随机选择一个函数并使用它来计算该组中键的每个哈希值?
答案 0 :(得分:1)
如果您每次想对一个键进行哈希运算时都随机选择一个哈希函数,那么您将陷入混乱,因为不同的哈希函数会为同一键创建不同的哈希值。也就是说,如果您的键是“ foobar”,则哈希函数A会为其计算出与哈希函数B不同的值。
因此,您选择一个散列函数并将其应用于该组中的每个键。通常,您将对系统中的所有键使用相同的哈希函数。通常,在程序中具有多个哈希函数没有特别的优势。 (是的,我知道有特殊情况。)