关于Floyd-Warshall,Dijkstra和Bellman-Ford算法之间的区别,我是否正确?
我一直在研究这三个,并在下面说明了他们的推论。有人可以告诉我我是否足够正确地理解它们?谢谢。 Dijkstra的算法仅在您只有一个来源并且想知道从一个节点到另一个节点的最小路径时使用,但是在这种情况下会失败 当所有节点中的任何一个都可以作为源时,将使用Floyd-Warshall算法,因此您希望从任何源节点到任何目标节点的距离最短。仅在出现负循环时失败 (这是最重要的一个。我的意思是,这是我最不确定的一个:) 3,贝尔曼·福特(Bellman-Ford)和迪杰斯特拉(Dijkstra)一样,只有一个来源。它可以处理负数权重,其工作方式与Floyd-Warshall相同,只是有一个来源,对吗? 如果需要看一下,相应的算法是(由维基百科提供): 贝尔曼福特: procedure BellmanFord(list vertices, list edges, vertex source) // This implementation takes in a graph, represented as lists of vertices // and edges, and modifies the vertices so that their distance and // predecessor attributes store the shortest paths. // Step 1: initialize graph …