<分区>
我想在数据结构中存储大量数字,为此,我想使用散列函数,以便可以快速插入、删除或查找。但是我无法决定应该使用哪个哈希函数?
一般来说,我想知道如何确定哈希函数是否适用于任何特定问题?
编辑: 我认为人们对使用术语“随机”感到困惑。在这里随机,我的意思是,我没有任何特定范围的数字,我必须从中选择[任何 32 位整数],但我有总数,它将被给予存储在数据结构中,比如大约 5000 个数字.因此,建议我针对这种情况最好的哈希函数,以及为什么你认为它是最好的?
<分区>
我想在数据结构中存储大量数字,为此,我想使用散列函数,以便可以快速插入、删除或查找。但是我无法决定应该使用哪个哈希函数?
一般来说,我想知道如何确定哈希函数是否适用于任何特定问题?
编辑: 我认为人们对使用术语“随机”感到困惑。在这里随机,我的意思是,我没有任何特定范围的数字,我必须从中选择[任何 32 位整数],但我有总数,它将被给予存储在数据结构中,比如大约 5000 个数字.因此,建议我针对这种情况最好的哈希函数,以及为什么你认为它是最好的?
最佳答案
如果数字是均匀随机的,只需使用选择低位的哈希函数即可。
unsigned hash_number(long long x)
{
return (unsigned) x;
}
关于c - 存储大随机数的最佳哈希函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457914/