D(i,j):i到j的距离.
R(i,j):i到j之间的插入点.
输入: 带权邻接矩阵w(i,j)
function [D,R]=floyd(A)
n=length(A);
D=A;
for i=1:n
for j=1:n
R(i,j)=j;
end
end
R
for k=1:n
for i=1:n
for j=1:n
if D(i,k)+D(k,j)<D(i,j)
D(i,j)=D(i,k)+D(k,j);
R(i,j)=R(i,k);
end
end
end
k
D
R
%D=[0 7 5 inf 9;7 0 2 inf 6;5 2 0 2 inf;3 inf 2 0 6;inf 6 4 6 0]
end
本文深入讲解了Floyd算法,一种用于解决任意两点间最短路径问题的经典算法。通过详细的步骤解析,展示了如何利用带权邻接矩阵计算所有顶点间的最短路径,并介绍了算法中的距离矩阵和插入点矩阵的更新过程。
1001

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



