如何创建一个算法来找到包含边的最短周期?

时间:2014-12-15 00:56:46

标签: algorithm tree graph-algorithm

您好,我正在为我的算法课程进行审核,而我在审核时遇到了一个问题。我真的不知道从哪里开始,所以任何事情都会有所帮助。谢谢!


问题

描述一种算法,用于在具有正边长度的有向图中找到包含给定边e =(u,v)的最短周期。如果不存在包含e的循环,则算法应该确定。算法应该在O(| v | ^ 2)

中运行

进展解决方案:

1 个答案:

答案 0 :(得分:1)

让您入门的一个简单想法是在图表上使用DFS(深度优先搜索),同时使用向量跟踪您访问过的所有节点,以跟踪当前处于递归循环中的节点。如果您访问递归向量中存在的节点,则有一个循环。要获得循环的长度,可以检查递归向量的长度。但是,这不必是最小的周期,因此不要终止算法。选择将此算法应用于整个图表后获得的所有值中的最小值。

我可能已经跳过了一些重要的细节,但它们是让你弄明白的。

如需更多帮助,请参阅以下链接:http://www.geeksforgeeks.org/detect-cycle-in-a-graph/