gpt4 book ai didi

java - 在 HashMap 或哈希表中重新哈希的成本

转载 作者:行者123 更新时间:2023-11-29 07:48:53 25 4
gpt4 key购买 nike

我已经研究过这个相关问题 Rehashing process in hashmap or hashtable .但是我需要知道重新散列过程的执行情况。例如,如果负载系数是 .75;

1- 这是否意味着我们忘记了现有的哈希表,对于每个现有的条目,我们都将它们一个一个地获取,这次使用新的哈希函数将它们重新输入到一组新的桶中?

2- 如果是这样,那么重新散列的性能如何,比如说当有 n 个条目退出时。它是 O(n) 摊销的吗?

最佳答案

Does this mean that we forget about the existing hashTable and for every existing entry we get them one by one and reenter them into new set of buckets this time with a new hash function?

是的,当底层数组被认为太小时就会发生这种情况。我们必须重新计算每个条目的哈希值,因为新的哈希表根据其大小具有不同的压缩函数。

If that's so then what is the performance of rehashing, say when there are n entries exited. Is it O(n) amortized?

是的,对于前一个数组中的每个条目,都会计算一个新的哈希值并重新输入该条目。所以 O(n) 摊销了。根据桶链表的实现方式,最坏的情况可能是 O(n^2),因为所有条目都可能进入同一个桶。

关于java - 在 HashMap 或哈希表中重新哈希的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951011/

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