繁体   English   中英

C++ 中 std::multiset::count 的时间复杂度是多少?

[英]What is the Time Complexity of std::multiset::count in C++?

我对在大小为 n的多重集中为某些元素 x调用 count(x) 时发生的操作数量感到困惑。

我是否正确操作数是 log(n) + #_of_matches_of_x,这意味着多重集中元素数量的对数加上多重集中所有元素中目标元素 x 的匹配数?

谢谢你的时间!

正如参考链接所提到的,计数的复杂性是:

容器大小的对数加上找到的元素数量的线性。

原因是std::multimap是一个树状数据结构,每个树节点都有一个容器。 因此,在调用std::multimap::count时,您应该首先在树中找到键O(log(All elements)) ,然后计算找到的节点中的元素(O(found elements))

站点明确指出 multiset::count 的复杂性是

大小成对数,匹配数成线性。

或者你可以看看这个

容器大小的对数加上找到的元素数量的线性。

好吧,我为您提取了一篇有趣的文章。 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM