gpt4 book ai didi

algorithm - 哈希方法允许增加桶的数量而不会弄乱以前的数据映射

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:43 25 4
gpt4 key购买 nike

是否有一种算法/方法可以让我在不重建数据/重新散列的情况下增加桶的数量。

实践中的问题:假设您有一群用户,这些用户由字符串“用户名”标识。然后将这些“用户名”散列到存储桶列表中。

This is done by something like:
String username = "user";
int index = username.hash();
int bucketIndex = index % bucketlist.size();

所以在这个方案中,如果我想增加“桶”的数量,那么还需要移动桶中的数据。以便它与用不同数字取模得到的新桶索引相匹配。

这实际上只是一个映射。在哪里可以找到属于给定用户的存储桶。

可能的愚蠢解决方案:同时具有旧桶大小和新桶大小。然后尝试查看两个桶。然后慢慢移动所有用户,使其通过使用新的 bucketlist.size() 匹配。这不需要完全停止,同时散列和移动。

需要什么:真正不好的是所有用户的移动。在许多桶中寻找正确的桶也不是理想的选择。

重点是能够仅通过使用算法来查明要使用列表中的哪个桶。

并且不可能将存储桶列表的大小作为用户名的一部分。

如果大致相同,则不需要像此处那样进行散列处理。

不知道有没有什么合理的答案...

最佳答案

有什么方法可以将哈希集的大小预先设置为适合您的数据的大小 - 从而消除或几乎消除重新哈希的需要?此外,即使您有一些重叠,只要冲突没有变得太深,使用每个节点的链表散列或类似的方法也不会造成太大的伤害。

关于algorithm - 哈希方法允许增加桶的数量而不会弄乱以前的数据映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864880/

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