資源簡介
matlab編制的dijkstra算法,輸入為圖矩陣(N個節(jié)點,N*N),源節(jié)點編號和目的節(jié)點編號,輸出為節(jié)點路徑和距離
代碼片段和文件信息
function?[mydistancemypath]=dijkstra(asbdb);
%?輸入:a鄰接矩陣(aij)是指i到j(luò)之間的距離,可以是有向的
%?sb?起點的標號?db終點的標號
%?輸出:mydistance最短路的距離?mypath最短路的路徑
n=size(a1);?visited(1:n)?=?0;
a(find(a==0))=inf;
distance(1:n)?=?inf;?%?保存起點到各頂點的最短距離
distance(sb)?=?0;?parent(1:n)?=?0;
for?i?=?1:?n-1
????temp=distance;
????id1=find(visited==1);?%查找已經(jīng)標號的點
????temp(id1)=inf;?%已標號點的距離換成無窮
????[t?u]?=?min(temp);?%找標號值最小的頂點
????visited(u)?=?1;?%標記已經(jīng)標號
評論
共有 條評論