floyd-warshall算法用来求最短路径(即动态规划)求任意两点的最短距离
时间复杂度为O(N3),空间复杂度为O(N2)。
到达目的地有两种方法,一:直接点对点,没有中转站。二:经过中转站直接到达。
在求最短路径前,先谈谈地图的存储



如图,使用二元数组存储。图中无穷大代表没有道路,e[1][2]=2代表1城市到2城市的路径
核心代码
for (int k = 0; k <= 3; k++)
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++) {
if (map[i][j] > map[i][k] + map[k][j]) {
map[i][j] = map[i][k] + map[k][j];
}
}
就五行。
本文详细介绍了Floyd-Warshall算法,一种用于解决所有顶点对最短路径问题的有效算法。该算法通过动态规划的方式,计算任意两点间的最短距离,其时间复杂度为O(N^3),空间复杂度为O(N^2)。文章还提供了算法的核心代码实现。
243

被折叠的 条评论
为什么被折叠?



