Algorithm 无向图中求圈的大O复杂性

Algorithm 无向图中求圈的大O复杂性,algorithm,graph,theory,big-o,Algorithm,Graph,Theory,Big O,我需要找到在一个由50个节点组成的无向图中找到所有圈的复杂性。此外,如果图形变大,复杂性会发生变化吗?如果网络变得相当大,复杂性会发生什么变化。另外,如果我只找到几个圈,那么如何找到在图中找到几个圈的复杂性呢 提前感谢你 使用深度优先搜索和主动标记节点,只要注意搜索中遇到标记节点的任何时间,就可以找到周期 我相信这是一种O(V+E)方法,其中V是顶点或节点的数量,E是边或连接的数量 如果将特定分支中的节点放在堆栈上,还可以轻松确定循环路径。只要确保每次回溯时都弹出一个节点。使用深度优先搜索和节点

我需要找到在一个由50个节点组成的无向图中找到所有圈的复杂性。此外,如果图形变大,复杂性会发生变化吗?如果网络变得相当大,复杂性会发生什么变化。另外,如果我只找到几个圈,那么如何找到在图中找到几个圈的复杂性呢


提前感谢你

使用深度优先搜索和主动标记节点,只要注意搜索中遇到标记节点的任何时间,就可以找到周期

我相信这是一种
O(V+E)
方法,其中
V
是顶点或节点的数量,
E
是边或连接的数量


如果将特定分支中的节点放在堆栈上,还可以轻松确定循环路径。只要确保每次回溯时都弹出一个节点。

使用深度优先搜索和节点的主动标记,只要注意搜索中遇到标记节点的任何时间,就可以找到循环

我相信这是一种
O(V+E)
方法,其中
V
是顶点或节点的数量,
E
是边或连接的数量


如果将特定分支中的节点放在堆栈上,还可以轻松确定循环路径。只要确保每次回溯时都弹出一个节点。

给定的图形可以有指数级的循环数(以图形大小为单位)。考虑一个二部图,其中VI连接到Wi + 1% N,WI连接到VI 1% N.

所以,除非你有特定类型的图,否则多项式时间解是没有希望的。 以指数时间运行的解决方案非常容易构建。考虑顶点的所有排列,看看这个排序是否导致一个循环。< /P>
当然,在实践中,你可以想出比这快得多的解决方案

给定的图可以具有指数级的循环数(以图的大小为单位)。考虑一个二部图,其中VI连接到Wi + 1% N,WI连接到VI 1% N.

所以,除非你有特定类型的图,否则多项式时间解是没有希望的。 以指数时间运行的解决方案非常容易构建。考虑顶点的所有排列,看看这个排序是否导致一个循环。< /P>
当然,在实践中,你可以想出比这快得多的解决方案

如果您提前知道有50个节点,那么复杂性是O(1),因为它只需要恒定的时间来找到所有的循环。TSP也是常数时间。:-)只有当图形(或其他输入)的大小是无界的时,算法复杂性才成为问题,并且该复杂性不会随着图形的增大而改变,因为它不取决于输入的大小。复杂性只有在你改变算法时才会改变。谢谢你的回答。实际上,我有一个算法,其中一个汇聚节点通过计算图中所有节点的消息路径或节点ID,在一个无向图中找到几个循环。例如,在一个有10个大小不同的循环的图中,它只找到前5个循环,因此在这种情况下,算法的复杂度是多少。如果您提前知道有50个节点,那么复杂度是O(1),因为它只需要恒定的时间来找到所有循环。TSP也是常数时间。:-)只有当图形(或其他输入)的大小是无界的时,算法复杂性才成为问题,并且该复杂性不会随着图形的增大而改变,因为它不取决于输入的大小。复杂性只有在你改变算法时才会改变。谢谢你的回答。实际上,我有一个算法,其中一个汇聚节点通过计算图中所有节点的消息路径或节点ID,在一个无向图中找到几个循环。例如,在一个存在10个大小不同的循环的图中,它只找到前5个循环,因此在这种情况下,算法的复杂度是多少