哈希表压缩函数



朋友们呢,我有一个查询,因为我找不到太多关于它的信息,例如,我如何实现压缩哈希函数来订购10个车牌?车牌由3个数字和3个字母组成,有人可以给我举个例子来支持我

一个简单的方法就是在内存中并排排列值,然后在该内存块上运行现有的哈希函数。对于大多数目的来说,即使是CRC函数也会产生足够好的结果。

另一种方法是从一个数字中选择任何能产生良好哈希的函数,并依次对每个部分进行哈希(或者在必要时只使用数字-一个身份哈希-这将是字母的ASCII/Unicode/etc值(:3个数字,然后是3个字母,给你六个哈希值-假设你已经放入了数组元素h[0]h[5],然后可以按如下方式组合:

size_t x = 0;
for (int i = 0; i < 5; ++i)
x ^= h[i] + 0x9e3779b9 + (x<<6) + (x>>2);

如果你想知道为什么这通常是合理的,请检查这个问题。

相关内容

  • 没有找到相关文章

最新更新