数学建模社区-数学中国

标题: 基于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! Ffor 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 wi=1;
7 |; L- Z9 z7 M. R7 r) T# Ewhile 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