有关HashMap时间复杂度的问题

问题描述 投票:0回答:1

这不是代码问题,我只是想了解哈希图的概念和时间复杂度。

好吧,我认为我知道hashMaps / sets的工作原理,并且我认为我理解HashMaps.get为什么具有恒定的时间,但是当我们具有很大的hashMap时,存储值的索引应该重叠。当2个哈希码解析为相同的索引时,它们将存储在此索引的LinkList中,对吗?。

不是所有元素都作为链接列表存储在一个索引中。现在不应该在O(n)中以最坏的情况运行HashMap.get。

hash linked-list hashmap time-complexity
1个回答
0
投票

是,HashMap的最坏情况下的时间复杂度是O(n),其中n是存储在一个存储桶中的元素数。最坏的情况是HashMap的所有n元素都存储在一个存储桶中。

但是,如果对每个存储桶都执行二进制搜索,则可以改善这一点。在那种情况下,最差的时间复杂度将是O(log(n)),因为binary search tree用于存储元素而不是doubly linked list

© www.soinside.com 2019 - 2024. All rights reserved.