% Dijkstra"s演算法:解決加權圖G =(V,E,W)中給定頂點之間的最短路徑 % 輸入:n x n 權重矩陣 G,無邊連通時,距離為無窮 % 舉例: % G = [0 50 inf 40 25 10; 50 0 15 20 inf 25; inf 15 0 10 20 inf; 40 20 10 0 10 25;25 inf 20 10 0 55; 10 25 inf 25 55 0]; % [D in1 in2] =dijkstra(G) function [D index1 index2] = dijkstra( G) % 引數初始化: % pb——P標號資訊,D——最短路距離 % index1——標號頂點順序,index2——標號頂點索引 M = max(G(:)); pb(1:length(G)) = 0; pb(1) = 1; index1 = 1; index2 = ones(1,length(G)); D(1:length(G)) = M; D(1) = 0; tmp = 1; % 更新l(v),同時記錄頂點順序和頂點索引 while sum(pb)
% Dijkstra"s演算法:解決加權圖G =(V,E,W)中給定頂點之間的最短路徑 % 輸入:n x n 權重矩陣 G,無邊連通時,距離為無窮 % 舉例: % G = [0 50 inf 40 25 10; 50 0 15 20 inf 25; inf 15 0 10 20 inf; 40 20 10 0 10 25;25 inf 20 10 0 55; 10 25 inf 25 55 0]; % [D in1 in2] =dijkstra(G) function [D index1 index2] = dijkstra( G) % 引數初始化: % pb——P標號資訊,D——最短路距離 % index1——標號頂點順序,index2——標號頂點索引 M = max(G(:)); pb(1:length(G)) = 0; pb(1) = 1; index1 = 1; index2 = ones(1,length(G)); D(1:length(G)) = M; D(1) = 0; tmp = 1; % 更新l(v),同時記錄頂點順序和頂點索引 while sum(pb)