相关疑难解决方法(0)

为什么 rehash 具有二次复杂度,但运算符 [] 在最坏情况下具有线性复杂度?

我知道这个问题,但我的有点不同。

为什么rehash具有二次复杂度,但operator [](可以调用rehash) 在最坏情况下具有线性复杂度?

抱歉,但我没有 10 分来添加图像,所以如果当你看到这个问题时一切都已经解决了,这是我在 cppreference 中看到的:

rehash复杂:

平均情况下与容器的大小呈线性关系,最坏情况下呈二次方关系。

operator[]复杂:

平均情况:恒定,最坏情况:大小呈线性。

我知道为什么 rehash 的复杂度会是二次方。然而,使其成为线性并不困难。因此,任一陈述都可以为真,但不能同时为真(仅当意味着不同的大小时,但我不明白什么可以被视为大小,除了元素的数量)。

c++ unordered-map std time-complexity

13
推荐指数
0
解决办法
286
查看次数

HashDoS:Hashtable的最坏情况复杂度怎么能是O(n ^ 2)?

到目前为止,你们中的许多人一定听说过HashDoS.发现这一点的研究人员在他们的视频中声称Hastable的最坏情况复杂性O(n^2).怎么会这样?

sorting hash denial-of-service

2
推荐指数
1
解决办法
1645
查看次数