- 在线时间
- 1 小时
- 最后登录
- 2017-2-1
- 注册时间
- 2009-7-3
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 288 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 112
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 50
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   6% 该用户从未签到
- 自我介绍
- 大家好!请多多指教~
 |
clear;4 m4 d! N- i) o+ V5 L1 k3 V/ \
clc;
4 \8 c2 l! d8 t* R- V& l; aM=10000;%无穷远距离
4 R. i1 v: ^' x) y. fa(1,:)=[0,50,M,40,25,10];
- \8 {1 M) j7 ?" La(2,:)=[zeros(1,2),15,20,M,25];& @8 |8 m: i$ [1 q4 e( `
a(3,:)=[zeros(1,3),10,20,M];; y, {$ r2 M7 d, w- d; L
a(4,:)=[zeros(1,4),10,25];" W- r5 X) ^$ L6 y0 y$ B0 }
a(5,:)=[zeros(1,5),55];- }( \4 _5 ^- w; ]5 a
a(6,:)=zeros(1,6);. M; {/ c8 w! ?/ P5 H% b
a=a+a';%a66邻接矩阵,无向图5 O5 ^0 a$ ^2 X; W/ I6 X6 X
pb(1:length(a))=0;pb(1)=1;%存放p,t标号信息+ l3 f: Z4 i) }
index1=1;%存放标号顶点顺序
1 M! p2 O0 y7 W; F) k( X- |1 ^1 d5 findex2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号
+ B8 z3 z3 ^0 S" o& H- ^d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值2 a" \, @ [# ^0 ~+ w
temp=1;%算c1到其它点的最短路! z' s6 { K0 G
while sum(pb)<length(a); R. H+ [6 v& v1 [9 m3 h+ l' s
tb=find(pb==0);%开始算第tb个顶点的最短路
( q- ~. ~- @) H0 @3 l d(tb)=min(d(tb),d(temp)+a(temp,tb));
0 r) B7 ]% o; K( b% A) Y tmpb=find(d(tb)==min(d(tb)));: _% n6 E @9 [9 o/ _
temp=tb(tmpb(1));0 t) O% Z7 e: B8 \3 G5 k
pb(temp)=1;
l* g# ~: h8 `" n8 }& h index1=[index1,temp];' X! C7 _, d1 v1 A. [
index=index1(find(d(index1)==d(temp)-a(temp,index1)));
* h0 G/ u* r; {0 f3 {+ V( s if length(index)>=2( B% n5 P. O9 F/ U" i2 J/ q
index=index(1);
p9 n0 a# i k5 H5 s end/ t8 z6 j' v) F, Y3 f# P8 L
index2(temp)=index;0 i/ a- t2 I R3 L
end0 l+ g) o6 V* u" [3 U
d, index1, index2 / d1 b- t3 n' U; g& b7 M( K
. l+ X" q- A9 P; e从没加注释那一行就看不太懂了,求问啊,感激不尽! |
zan
|