floyd1.m
来自「matlab中最短路问题的算法」· M 代码 · 共 23 行
M
23 行
function [D,path]=floyd1(a)
%a是带权邻接矩阵,当i与j不相同时,若i与j相连就取其权,否则,当i与j相同时,元素取0
n=size(a,1);%设置D和path的初值
D=a;
path=zeros(n,n);
for i= 1:n
for j=1:n
if D(i,j)~=inf
path(i,j)=j;%j是i的后继点
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 + -
显示快捷键?