floyd.m

来自「图和网络最短路径法则的弗洛伊德算法」· M 代码 · 共 28 行

M
28
字号
%floyd算法计算最短路径,输入a为赋权邻接矩阵
function [D,path]=floyd(a)
a={0,3,7,0,0,0
         3,0,2,5,4,0
         7,2,0,1,4,0
         0,5,1,0,2,8
         0,4,4,2,0,3
         0,0,0,8,3,0};
n=size(a,1);
D=a;
path=zeros(n,n);
for i=1:n
    for j=1:n
        if D(i,j)~=inf
            path(i,j)=j;
        end
    end
end
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);
                path(i,j)=path(i,k)
            end
        end
    end
end

⌨️ 快捷键说明

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