数学建模社区-数学中国
标题:
基于matlab Dijkstra算法的实现
[打印本页]
作者:
zzh121300
时间:
2009-3-26 14:41
标题:
基于matlab Dijkstra算法的实现
function [l,z]=Dijkstra(W)
: K0 |" |9 @/ E8 m" b6 _3 [
n = size (W,1);
2 C) U& x `5 ` b3 r, f. @
for i = 1 :n
( f4 ^% h! r- o1 T$ ~
l(i)=W(1,i);
9 Q0 F& y; a! M+ ]- E* T# ]$ w
z(i)=1;
3 S, j8 [! N% z4 M7 E: `
end
6 ~% P9 Y7 [, c4 k+ ?% r
i=1;
) J1 ^& s# j' H: f3 I+ |# Q7 y7 b: `6 X
while i<=n
- \& e- e/ p# x& H/ {+ s
for j =1 :n
" P6 \7 A6 m/ v) W4 Y) t
if l(i)>l(j)+W(j,i)
( \" C% i7 \1 v, C) H" Z+ e0 D! [
l(i)=l(j)+W(j,i);
( x8 J. ^3 M8 c4 a/ o8 m
z(i)=j;
* y# Y Q& K, W4 J# D
if j i=j-1;
! v1 R8 g% o8 {+ Q1 r* e, e
end
( c$ U/ [" P$ F& k. x( y4 k( T
end
3 I( p7 O: N1 Y, r+ K {1 j/ t2 x
end
: ]1 I- j+ ?( v, ^) \
i=i+1;
. r# q6 R4 b/ O: ^4 g
end
4 g3 t% u+ {+ u6 T& L& d5 \* u
% W =[ 0 2 1 8 Inf Inf Inf Inf
! f% U- v' o0 [
% 2 0 Inf 6 1 Inf Inf Inf
* n; F4 h! `1 e8 }0 a$ ?
% 1 Inf 0 7 Inf Inf 9 Inf
: W( |# T: B' f$ A. z
% 8 6 7 0 5 1 2 Inf
8 [% d; g9 N+ v9 Z$ q! r
% Inf 1 Inf 5 0 3 Inf 9
0 x' o; e& o$ z
% Inf Inf Inf 1 3 0 4 6
1 ^. S- J8 J5 u# k1 Q
% Inf Inf 9 2 Inf 4 0 3
/ [! g+ e2 D" u: P# K" B2 V* y
% Inf Inf Inf Inf 9 6 3 0 ];
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5