转置图形的时间复杂度
Time complexity for transposing a graph
我想得到一些帮助来分析以下函数的时间复杂度。
图形将所有顶点存储在矢量列表中。每个顶点都有一个存储顶点边的向量。这个向量称为邻居。
Graph
Graph::transpose() const
{
Graph Graph_T;
for( auto& vertex : list )
{
Graph_T.insert_vertex( vertex -> get_name() );
}
for( auto& vertex : list )
{
for( auto& edges : vertex -> neighbours )
{
Graph_T.insert_edge(edges,vertex );
}
}
return Graph_T;
}
第一个 for 循环显然是 |V|,其中 |V|是顶点的数量。
第二个 for 循环也是 |V|但里面有第三个环路。我的猜测是第三个循环时间复杂度是 |E|,其中 |E|是图形中的边数。
总和:时间复杂度为/theta ( V+V+E) =/theta (E+V)。
我的分析正确吗?
我会说 O(|V|^2) 因为有一个双精度:外部的完成 |V|次数和内部最多完成 |V|次。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 具有嵌套 if-else 的循环的时间复杂度
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 如何计算函数的时间复杂度?
- 求解包含"variables"的 T(n) 时间复杂度
- 查找数字是否为 2 的幂的时间复杂度
- C++ - 最坏情况和平均情况插入时间复杂度在 std::unordered_map <int,int>?
- 为什么一种算法在相同的时间复杂度下比另一种算法更快?
- 关于记忆后这种递归关系的时间复杂度
- 2 个嵌套循环的时间复杂度
- 给定C++代码的时间复杂度是多少?
- 转置图形的时间复杂度