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