如何设计伪代码来检测无向图是否具有运行时间为 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 循环。有人能帮我吗?谢谢!

  1. 找到all cycles in the graph.
  2. 对于每个周期:
    1. 生成边缘不同深度(或广度)优先搜索树的森林,该树从循环上的顶点开始,并在到达循环上的任何顶点时终止。
    2. 循环上连接点的路径由 DFS 树的根和叶给出。
    3. 如果存在两条(顶点和边不同的)路径,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)

然后您需要对路径进行排序并找到具有交替端点(对于每个循环)的不同路径,这在您需要的复杂性中可能是可能的。