在无向图中查找欧拉路径的最佳时间复杂度

时间:2016-11-24 15:41:46

标签: algorithm graph time-complexity

我设法创建了一个算法,在无向连通图中找到一条欧拉路径(如果有的话),时间复杂度为O(k ^ 2 * n)其中:

< p> k:边数

n:节点数

我想知道是否有更好的算法,如果是的话背后的想法。

提前致谢! :)

1 个答案:

答案 0 :(得分:3)

Hierholzer的算法在O(k)时间运行:https://en.wikipedia.org/wiki/Eulerian_path#Hierholzer.27s_algorithm

首先,在奇数度的两个顶点之间找到一条路径。然后,只要路径上有一个带有未使用边的顶点,就可以跟随该顶点中未使用的边,直到再次返回该顶点,然后在新路径中合并。

如果没有奇数度的顶点,那么你可以从任何顶点的空路径开始。

如果奇数度的顶点数不是0或2,则没有欧拉路径。