Floyd算法解决的是图中任意两点的最短路径问题。其中图的边可以存在负值,但不能存在负回路。Floyd算法的时间复杂度是O(N^3).
即Floyd算法本质是三维动态规划,D[i][j][k]表示从点i到点j只经过0到k个点最短路径,然后建立起转移方程,然后通过空间优化,优化掉最后一维度,变成一个最短路径的迭代算法,最后即得到所以点的最短路。
在实现Floyd算法中,需要建立图的临接矩阵表示,时间复杂度是O(N^3)
Floyd算法解决的是图中任意两点的最短路径问题。其中图的边可以存在负值,但不能存在负回路。Floyd算法的时间复杂度是O(N^3).
即Floyd算法本质是三维动态规划,D[i][j][k]表示从点i到点j只经过0到k个点最短路径,然后建立起转移方程,然后通过空间优化,优化掉最后一维度,变成一个最短路径的迭代算法,最后即得到所以点的最短路。
在实现Floyd算法中,需要建立图的临接矩阵表示,时间复杂度是O(N^3)