资 源 简 介
Floyd算法:funcTIon [d,path]=floyd(a,sp,ep)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% floyd - 最短路问题%% Syntax: [d,path]=floyd(a,sp,ep)%% 输入:% a - 距离矩阵是指i到j之间的距离,可以是有向的% sp - 起点的标号% ep - 终点的标号%% 输出:% d - 最短路的距离% path - 最短路的路径%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%n=size(a,1);D=a;path=zeros(n,n);for i=1:nfor j=1:nif D(i,j)~=infpath(i,j)=j; %j是i的后续点endendendfor k=1:nfor i=1:nfor j=1:nif D(i,j)>D(i,k)+D(k,j)D(i,j)=D(i,k)+D(k,j);path(i,j)=path(i,k);endendendendp=[sp];mp=sp;for k=1:nif mp~=epd=path(mp,ep);p=[p,d];mp=d;endendd=D(sp,ep);path=p;