当Hash码的Hash码总是相等时,哈希图最坏的时间复杂度是多少。
在我的理解中:由于每一个密钥都有相同的哈希代码,所以它总是会走到同一个桶并循环通过它来检查相等的方法,所以对于两个get,并且将时间复杂度设为O(n),对吗?
我在看这个,但它没有回答我的问题。
在这里,HashMap get/put complexity他们陈述了插入的时间复杂度是O(1)的最坏情况,而对于求O(n),为什么会这样呢?

最佳答案

是的,在最坏的情况下,您的哈希映射将退化为一个链接列表,并且您将因查找以及插入和删除而遭受O(N)惩罚,这两个操作都需要一个查找操作(感谢在我前面的回答中指出错误的注释)。
有一些方法可以减轻最坏情况下的行为,例如使用自平衡树代替bucket溢出的链表-这将最坏情况下的行为减少到o(logn)而不是o(n)。

07-28 13:25