如何设计伪代码来检测无向图是否具有运行时间为 O (| V³ |) 的 C4 循环
How to design a pseudocode to detect if an non-directed graph has a C4 cycle with runtime O (| V³ |)
这种情况特定于运行时O (|V³|) 并找到一个C4 循环。有人能帮我吗?谢谢!
- 找到all cycles in the graph.
- 对于每个周期:
- 生成边缘不同深度(或广度)优先搜索树的森林,该树从循环上的顶点开始,并在到达循环上的任何顶点时终止。
- 循环上连接点的路径由 DFS 树的根和叶给出。
- 如果存在两条(顶点和边不同的)路径,u1->v1和u 2->v2,这样顶点的顺序是 u1 < u2 < v1 < v2 绕圈(任一方向)则图有完整的 K4未成年人。
找到基本循环的约翰逊算法是 O((v+e)(c+1))
v 个顶点、e 条边和 c 个基本循环。
DFS(或 BFS)是 O(v+e)
,因此每个周期重复它也是 O((v+e)c)
。
然后您需要对路径进行排序并找到具有交替端点(对于每个循环)的不同路径,这在您需要的复杂性中可能是可能的。
这种情况特定于运行时O (|V³|) 并找到一个C4 循环。有人能帮我吗?谢谢!
- 找到all cycles in the graph.
- 对于每个周期:
- 生成边缘不同深度(或广度)优先搜索树的森林,该树从循环上的顶点开始,并在到达循环上的任何顶点时终止。
- 循环上连接点的路径由 DFS 树的根和叶给出。
- 如果存在两条(顶点和边不同的)路径,u1->v1和u 2->v2,这样顶点的顺序是 u1 < u2 < v1 < v2 绕圈(任一方向)则图有完整的 K4未成年人。
找到基本循环的约翰逊算法是 O((v+e)(c+1))
v 个顶点、e 条边和 c 个基本循环。
DFS(或 BFS)是 O(v+e)
,因此每个周期重复它也是 O((v+e)c)
。
然后您需要对路径进行排序并找到具有交替端点(对于每个循环)的不同路径,这在您需要的复杂性中可能是可能的。