gpt4 book ai didi

C:为大型数据集生成哈希键?

转载 作者:太空狗 更新时间:2023-10-29 15:22:22 26 4
gpt4 key购买 nike

我目前正在研究散列和 key 生成,试图制作我自己的散列 key 生成器。

目前我有一个约 90000 个字符串的列表(每个 1 个单词和一个不同的单词)。我想知道生成键(数字键而不是字符串键)的最佳方法是什么?

目前根据单词最后一个 ascii 字符,我根据字母的值进行计算。

结果是大约 50% 的词生成了一个与另一个冲突的键。

然后我使用二次探查在表中找到剩余单词的空间。

如上所述,我的问题是,为 90000 个不同的词生成 key 的最佳方法通常是什么?我知道数据集越大,发生冲突的可能性就越大,但您会如何建议/或尽量减少冲突?

编辑:另外 - 我不关心密码学,它只需要快速。

谢谢。

最佳答案

可以“借”Java's implementation of String's hashCode *:

int hashCode(const char* s) {
int h = 0;
while (*s) {
h = 31*h + (*s++);
}
return h;
}

该函数实现了合理的分离,是目前使用最广泛的哈希函数之一。

* 其中,as it turns out , Java依次"borrowed" from Kernighan & Ritchie's book关于 C 编程。

关于C:为大型数据集生成哈希键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com