我需要找到在由50个节点组成的无向图中查找所有周期的复杂性。此外,如果图形变大,复杂性是否会发生变化,如果网络变得相当大,将会发生什么变化。另外,如果我只找到几个周期,那么如何找到在图中找到几个周期的复杂性。
感谢您的期待!
答案 0 :(得分:0)
使用深度优先搜索和主动标记节点,只需注意在搜索中遇到标记节点的任何时间,就可以找到周期。
我认为这是O(V+E)
方法,其中V
是顶点或节点的数量,E
是边或连接的数量。
如果将节点放在堆栈中的特定分支中,则还可以轻松确定循环路径。只需确保每次回溯时都弹出一个节点。
答案 1 :(得分:0)
给定图形可以具有指数周期数(以图形的大小)。考虑二分图,其中v i 连接到w i + 1%n 并且w i 连接到v i + 1 %N 子>
因此,除非你有特定的图形,否则多项式时间解决方案是没有希望的。 在指数时间内运行的解决方案非常容易构建。考虑顶点的所有排列,看看该排序是否导致循环。
当然,实际上你可以提出比这更快的解决方案。