📄 floyd.m
字号:
function y=Floyd(x) %Floyd算法求解最短路
n=length(x); % 阶(x)<100
memory=4*ones(n,n);
for i=1:n
for j=1:n
path(i,j)=i*100+j;
end
end
for m=1:n
for i=1:n
for j=1:n
d=1000000;p=0;
for k=1:n
sum2=x(i,k)+x(k,j);
if(d>sum2)
d=sum2;
p=k;
end
end
if(x(i,j)>d)
x(i,j)=d;
path(i,j)=path(i,p)*10^(memory(p,j)-2)+mod(path(p,j),10^(memory(p,j)-2));
memory(i,j)=memory(i,p)+memory(p,j)-2;
end
end
end
end
y=x % 最短路权距阵
path % 最短路径
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -