2011-06-04 35 views
7

我将在一周的时间内出现在Google现场采访中。我明白哈希表,哈希映射和哈希函数非常有用,并且在许多面试问题中很方便,如字典,桶排序,以检查整个文档的重复,重复一个URL等等,不管是字符串还是整数。我想知道什么是一些流行的整数和字符串散列函数。5个流行的散列函数..?

我能想到的是整数h(n)= n,其中我们要根据它们的标记对学生进行排名,即非常有限的可能值范围。

请帮助更受欢迎的选择esp字符串,文件。

感谢,

+1

对不起,但由于缺乏研究工作,这确实值得-1。 – 2011-06-07 07:38:26

回答

9

对于字符串,可以使用字符串的cryptographic hash作为一个hash table的关键。这通常会导致散列键的统一分布,这是一个很好的散列表属性。

如果您想缩小密钥的大小(例如只有32位),您仍然可以选择加密哈希函数(如SHA-256)并使用较低的32位。

也可以将数字表示为字符串或二进制数据,并计算其加密散列以确保统一的密钥分配。

一旦您的密钥均匀分布,您不需要使用复杂的散列函数 - 您可以将密钥范围映射到大小相同的分箱。

为了更好地为面试做好准备,您也可以阅读this