- function [distance,path]=Dijkstra(W,s,d)
- %20190117 by Asterghost,in Beijing
- N=length(W);
- for i=1:N
- W(i,find(W(i,:)==0))=inf;
- W(i,i)=0;
- end
- short_path_val=1./zeros(1,N);
- pre_dot=zeros(1,N);
- neighbor=W(s,:);
- neighbor(s)=inf;
- short_path_val(s)=0;
- dot=zeros(1,N);
- dot(:,:)=s;
- while sum(neighbor(:,:)~=inf)
- [xx,x]=min(neighbor);
- x=x(1);
- neighbor(x)=inf;
- short_path_val(x)=xx;
- pre_dot(x)=dot(x);
- val_copy=xx+W(x,:);
- yy=find(short_path_val==inf);
- y=find(val_copy<neighbor);
MATALB 复杂网络最短路径及最短距离Dijkstra算法源码
最新推荐文章于 2025-04-30 12:15:11 发布