基本思想:最开始只允许进过1号顶点进行中转,
接下来只允许1和2号顶点进行中转......允许经过1~n所有顶点进行中转,
求任意两点之间的最短路程。用一句话概括就是:
从i号顶点到j号顶点只经过前k号点的最短路程。
核心代码:
for (int k=1; k<=n; i++)
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
if(e[i][j]>e[i][k]+e[k][j])
e[i][j]=e[i][k]+e[k][j];
特点:代码简单,时间复杂度高,可以解决带负权边。