wen1055 发表于 2009-8-23 19:07

Dijkstra最短路算法通用Matlab程序

Dijkstra最短路算法通用Matlab程序

function =dijkstra(D,s)

%Dijkstra最短路算法Matlab程序用于求从起始点s到其它各点的最短路
%D为赋权邻接矩阵
%d为s到其它各点最短路径的长度
%DD记载了最短路径生成树

=size(D);
d=inf.*ones(1,m);
d(1,s)=0;
dd=zeros(1,m);
dd(1,s)=1;
y=s;
DD=zeros(m,m);
DD(y,y)=1;
counter=1;
while length(find(dd==1))<m
     for i=1:m
         if dd(i)==0
             d(i)=min(d(i),d(y)+D(y,i));
         end
     end
     ddd=inf;
     for i=1:m
         if dd(i)==0&&d(i)<ddd
             ddd=d(i);
         end
     end
     yy=find(d==ddd);
     counter=counter+1;
     DD(y,yy(1,1))=counter;
     DD(yy(1,1),y)=counter;
     y=yy(1,1);
     dd(1,y)=1;
end

ywt 发表于 2009-8-23 20:04

好东西,谢谢

liuren29 发表于 2009-8-23 20:28

O(∩_∩)O谢谢分享

一直很执着 发表于 2009-8-23 21:26

呵呵~分享了

yeqingyi 发表于 2009-8-23 22:42

程序写得不错。

cey1979 发表于 2009-8-23 23:10

乱一点。。。。。。

tracy513 发表于 2009-8-24 00:38

程序写得不错。

好学者 发表于 2010-5-10 16:42

谢谢啦,我已经copy下来了!!!!!!!!!!!!!!!

Young_Dream 发表于 2010-8-11 19:55

谢谢拉,那走了

滴水 发表于 2010-8-14 11:10

谢谢拉,那走了
页: [1] 2
查看完整版本: Dijkstra最短路算法通用Matlab程序