- 在线时间
- 1 小时
- 最后登录
- 2017-2-1
- 注册时间
- 2009-7-3
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 288 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 112
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 50
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   6% 该用户从未签到
- 自我介绍
- 大家好!请多多指教~
 |
clear;
0 i' \) B# C. V$ G; c0 {) T. o/ Kclc;2 I, j& H5 B7 k; j3 H9 W# K
M=10000;%无穷远距离6 W$ r- @ p) [* j
a(1,:)=[0,50,M,40,25,10];
1 `! D+ U/ |. P1 _' oa(2,:)=[zeros(1,2),15,20,M,25];* F+ L/ p9 D7 s% Z" N8 a0 d& ^; L
a(3,:)=[zeros(1,3),10,20,M];. W! M, L8 C, d6 P
a(4,:)=[zeros(1,4),10,25];
; x! l; l4 X0 E4 H$ Ca(5,:)=[zeros(1,5),55];
/ H. x8 Y/ _ f' d2 C+ A. L4 Q6 ea(6,:)=zeros(1,6);
7 Z! {8 w9 `; C; l! Ma=a+a';%a66邻接矩阵,无向图
; P$ v: s# @3 Y( |5 c: c$ L8 M* Apb(1:length(a))=0;pb(1)=1;%存放p,t标号信息% S& G( s# G: y* P8 a' A5 p0 v$ B) C
index1=1;%存放标号顶点顺序
$ B% L7 ~$ O5 W2 X3 S& N0 o" Nindex2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号6 u+ e3 A( Z) U5 }0 N* b
d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
0 x; j9 i1 @. m/ U7 [9 G/ htemp=1;%算c1到其它点的最短路) p o' @; j, R+ [; P6 g
while sum(pb)<length(a)
4 l' Z" T: q+ U9 U# S tb=find(pb==0);%开始算第tb个顶点的最短路
: t, O" ^7 b# P. ^+ C/ F( y7 d d(tb)=min(d(tb),d(temp)+a(temp,tb));! ] @: ^# H! t# D' ]
tmpb=find(d(tb)==min(d(tb)));4 {3 {& g$ c4 ?
temp=tb(tmpb(1));
; k) c) f( P# c1 l. x pb(temp)=1;
5 q$ Q* t0 v1 l index1=[index1,temp];( T' i1 U( ]7 K! e
index=index1(find(d(index1)==d(temp)-a(temp,index1)));( s+ M/ f% o: E6 Y% |. T
if length(index)>=2 t. L& E: ?5 a% G1 {' t
index=index(1);
( ~# S2 G& D& @1 ^* p end0 K, \2 P' o( G: t4 r3 [
index2(temp)=index;$ s( W4 I: E4 \- i4 e2 [4 U1 p
end" j3 ~- A- v4 w( Y$ P- c* B
d, index1, index2
" V5 ]4 c3 ~% G" T4 m% ^/ ^+ r
2 @/ L" x w! u* w* Q! c从没加注释那一行就看不太懂了,求问啊,感激不尽! |
zan
|