Dijkstra的算法是否不修改标记顶点的距离?

我记得曾经读过Dijkstra的算法将一个节点标记为已访问,但它不会再更新其距离。考虑下图:

A-3-B-7-F
|       |
8     -3
|    /
C-3-E

该算法将访问A→B→C,并且将E和F排队。但是F将被优先选择,因为它的距离更短。然后,将选择E并找到到F的更短距离。在这种情况下,即使已经标记了F的距离也不应修改吗?

wangyi19890218 回答:Dijkstra的算法是否不修改标记顶点的距离?

您的图形的边权重为-3。

当负边缘权重存在时,Dijkstra的算法不起作用。您在问题中给出的图形足以证明这一事实。

来自Wikipedia

  

与Dijkstra的算法不同,Bellman–Ford algorithm可以用于具有负边缘权重的图,只要该图不包含从源顶点s可以到达的negative cycle

本文链接:https://www.f2er.com/3043210.html

大家都在问