gpt4 book ai didi

c++ - 如何提高具有 100 万个元素和 997 个桶的哈希表的性能?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:30 24 4
gpt4 key购买 nike

这是一道面试题。

假设表中有100万个元素和997桶无序列表。进一步假设哈希函数以相等的概率分布键(即每个桶有 1000 个元素)。

找到不在表中的元素的最坏情况时间是多少?找到表中的一个?您如何改进这一点?

我的解决方案:查找不在表中和在表中的元素的最坏情况时间都是 O(1000)。 1000 是未排序列表的长度。

改进它:(0) 直截了当,增加桶数 > 100 万。(1) 每个桶都有一个第二个哈希表,它使用不同的哈希函数为第二个表计算哈希值。它将是 O(1)(2) 每个桶中都有一棵二叉搜索树。它将是 O(lg n)。

是否可以在空间和时间之间做出权衡。将两者保持在合理范围内。

有什么更好的主意吗?谢谢 !

最佳答案

最简单和最明显的改进是将哈希表中的桶数增加到大约 120 万——至少假设您的哈希函数可以生成该范围内的数字(通常会这样)。

关于c++ - 如何提高具有 100 万个元素和 997 个桶的哈希表的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156269/

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