我成功地创建了一个算法,可以在时间复杂度为O(k^2 * n)的情况下找到一个无向连通图中的欧拉路径(如果存在)其中:k: 边数 n: 节点数我想知道是否有更好的算法,如果有,它的思路是什么。谢谢! :)
Hierholzer算法的时间复杂度为O(k): https://en.wikipedia.org/wiki/Eulerian_path#Hierholzer.27s_algorithm 首先,您需要找到两个度数为奇数的顶点之间的路径。然后,只要在路径上有未使用的边的顶点,就从该顶点沿着未使用的边继续前进,直到再次回到该顶点,然后合并新路径。如果没有度数为奇数的顶点,则可以从任何顶点开始一个空路径。如果度数为奇数的顶点数不是0或2,则不存在欧拉路径。