我需要在无向图中找到从第一个顶点到第二个顶点的最短非递归循环。
实施例
顶点:{A,B,C,D,E}
边缘:{A,C},{B,C},{A,B},{C,D},{D,E}
我需要找到从A到C的循环。这里的答案是{A,B,C}
我已经尝试过实现BSP算法,但它可以工作,但是BSP太慢了。
需要你的帮助!
答案 0 :(得分:-1)
只需从第二个节点运行广度优先搜索(BFS),然后在到达第一个节点时停止。
BFS是O(M)(M是从起始节点可到达的边数)。你不能提高效率。
如果您的实施太慢,您可能会使用一些效率低下的数据结构或语言(不要使用解释器)。如果您发布代码,某人可能会帮助您加快速度。