www.gusucode.com > Floyd算法、dijkstra算法、贪婪算法、遗传算法、搜索算法、蚁群算法、哈密顿环路的matlab源程序 > code/Floyd算法/floyd.m

    %floyd.m
              %采用floyd算法计算图a中每对顶点最短路
              %d是矩离矩阵
              %r是路由矩阵
              function [d,r]=floyd(a)
              n=size(a,1);
              d=a;
              for i=1:n
                  for j=1:n
                      r(i,j)=j;
                  end 
              end 
              r
              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);
                              r(i,j)=r(i,k)
                          end 
                      end 
                  end
                  k
                  d
                  r
              end