【发布时间】:2022-10-22 04:37:05
【问题描述】:
所以我有一个图(std::map),它将字符串存储为键,值是字符串集(图中每个节点的邻接列表):
std::map<std::string, std::set<std::string>> graph
我的插入代码很简单:
graph[from].insert(to)
在哪里从和至都是字符串。所以我插入至在键关联的字符串集中从.
对于这个插入位代码的平均和最坏情况时间复杂度,我认为它们是 O(x*log(V) * y*log(n)),其中 x 是字符串的长度从, y 是字符串的长度至, V 是图中的节点数,n 是图中的边数(我包括了字符串长度,因为我认为我们还必须考虑 std::string 比较,它是 O(任一字符串的长度)) ?
最好情况的时间复杂度要么与平均/最坏情况相同,要么是 O(x*y),如果我们很幸运并且地图和集合实现的红黑树的根节点是弦乐从和至,分别 - 虽然,我对这个最没有信心。
我会很感激一些帮助。谢谢。
【问题讨论】:
-
可能想和你几分钟前问这个确切问题的同学在一起。
-
@sweenish 我没有看到任何与最近提出的问题类似的问题,但我确实在几个小时前在这里询问了关于地图/集合中的标准插入/查找的问题。现在,这是一个有点复杂的问题。
标签: c++ stl time-complexity complexity-theory