数学建模社区-数学中国
标题:
基于matlab Dijkstra算法的实现
[打印本页]
作者:
zzh121300
时间:
2009-3-26 14:41
标题:
基于matlab Dijkstra算法的实现
function [l,z]=Dijkstra(W)
& n/ z9 `4 a, h8 W9 a1 l
n = size (W,1);
0 w! u) P( \2 V r! F
for i = 1 :n
9 [1 Q6 w5 d( j4 Y: V6 X& T. p
l(i)=W(1,i);
0 U8 X$ T$ D; E' {2 i; K) R
z(i)=1;
5 d# G2 s9 i) n! s% r0 X& j1 x
end
! o' b2 g8 k+ f/ i0 A2 w
i=1;
7 |; L- Z9 z7 M. R7 r) T# E
while i<=n
% c4 u+ h# Y6 u: E6 N3 H
for j =1 :n
' `% `+ D* h( L
if l(i)>l(j)+W(j,i)
2 m# w5 F$ \( \% s) R- Y/ G4 k
l(i)=l(j)+W(j,i);
: q% `& g/ L. X. {* [9 t$ C
z(i)=j;
: W; B: g9 b$ G
if j i=j-1;
) T6 M) N4 X' ~
end
* `1 N* _: Y) }! z, @) F
end
6 m+ Y* I% J: S# X6 E6 j0 ^
end
* }$ i7 B. y5 u! z4 ^- Z( e% [, s
i=i+1;
9 _. F6 C4 T3 B: r' j+ C) H) o
end
5 |0 I9 p4 T ]( J, B G5 t" S& X8 p' G
% W =[ 0 2 1 8 Inf Inf Inf Inf
% v0 W+ d8 }# \( b! Z* n1 C
% 2 0 Inf 6 1 Inf Inf Inf
6 U8 {. y9 a6 b+ o! T
% 1 Inf 0 7 Inf Inf 9 Inf
. h6 N$ y& F0 i( X9 ]" {- Q. F6 l
% 8 6 7 0 5 1 2 Inf
+ C" E) g0 q, u
% Inf 1 Inf 5 0 3 Inf 9
( u4 R' d8 _2 X* g' k
% Inf Inf Inf 1 3 0 4 6
& e6 M1 O- o1 K+ J' A, X8 B. b
% Inf Inf 9 2 Inf 4 0 3
& g/ |; ?$ u+ L, m# z
% Inf Inf Inf Inf 9 6 3 0 ];
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5