floyd.m

来自「10组图论编程」· M 代码 · 共 27 行

M
27
字号
function y=floyd(D)
%求网络中任意2点之间的最短路。
M=inf;
a(1,:)=[0,50,M,40,25,10]; 
a(2,:)=[zeros(1,2),15,20,M,25]; 
a(3,:)=[zeros(1,3),10,20,M]; 
a(4,:)=[zeros(1,4),10,25]; 
a(5,:)=[zeros(1,5),55]; 
a(6,:)=zeros(1,6); 
a=a+a'; 
if nargin==0
    D=a;
end
N=length(D);
p=D;
q=[];
for n=2:N
    temp=[];
    for x=1:N
        temp=[temp;p(x,n)*ones(1,N)+p(n,:)];
    end
        q=min(p,temp);
        p=q;
end
p
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?