迪杰斯特拉算法为什么不能有负权边

2025-03-09 20:46:31
推荐回答(1个)
回答1:

你是否弄错了,是单源最短路径的Dijkstra算法不能边权为负值,因为其算法为从当前最小路径长度开始,逐步增加,并且不再回头运算,如果有边权为负值,自然用bellman算法
还有一个可以选择的是Floyd算法,这后面两者的使用前提都是不存在负权回路,原因是一圈转下来变小了,再转一圈就更小了
而Kruskal算法是求最小生成树的,边权为负值什么问题都没有