- 在线时间
- 1 小时
- 最后登录
- 2017-2-1
- 注册时间
- 2009-7-3
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 288 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 112
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 50
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   6% 该用户从未签到
- 自我介绍
- 大家好!请多多指教~
 |
clear;) a5 N1 \1 B" D
clc;
! U/ z) R$ V$ e, R |! jM=10000;%无穷远距离
$ T& o" A2 ^, a2 ]8 ya(1,:)=[0,50,M,40,25,10];& e) `- w( u6 o2 y0 V
a(2,:)=[zeros(1,2),15,20,M,25];6 C$ K. `6 \3 m7 V$ X2 Z
a(3,:)=[zeros(1,3),10,20,M]; p- x" P* p) L# u* O
a(4,:)=[zeros(1,4),10,25];
. I/ v& j0 c& T- b! V- Da(5,:)=[zeros(1,5),55];
. c. H9 k- \: a6 V4 U% \a(6,:)=zeros(1,6);' V" K; b2 O- m! k! F( Y
a=a+a';%a66邻接矩阵,无向图
& B# [) T$ \. apb(1:length(a))=0;pb(1)=1;%存放p,t标号信息. k: _$ M" X/ e6 F
index1=1;%存放标号顶点顺序
- j- r' Q7 t% t. b7 vindex2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号+ r- X+ D# N1 [. T. n3 P
d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
' D/ m! v E3 J8 U1 M. Jtemp=1;%算c1到其它点的最短路$ j3 L1 C9 N2 d0 `4 X+ H' s
while sum(pb)<length(a)" q% w/ V$ l! J; M! E5 d
tb=find(pb==0);%开始算第tb个顶点的最短路1 h$ U3 o9 @" d4 X$ X$ q
d(tb)=min(d(tb),d(temp)+a(temp,tb));( R) }3 i# y$ q) c( H
tmpb=find(d(tb)==min(d(tb)));
8 x+ x, [8 y( O# A/ c temp=tb(tmpb(1));
0 w2 U) I7 I6 O4 K4 X; { pb(temp)=1;
]8 d! j& s2 Q3 L$ p5 I! v index1=[index1,temp];
4 I2 m: Q' e6 o: i Q" e index=index1(find(d(index1)==d(temp)-a(temp,index1)));2 C- ?6 z1 m$ B G* ]' d
if length(index)>=2
; x/ _7 W- ?1 R3 q index=index(1);
3 |3 n& t# [( }1 B$ A end
% T" B) Z4 P; c& r* m index2(temp)=index;) _0 c: t8 @6 X. I9 _
end
# ^9 W7 N& I" m$ a7 G$ vd, index1, index2
6 d- b& D2 a# E ] s2 G8 P& A/ L* a; o6 J8 L
从没加注释那一行就看不太懂了,求问啊,感激不尽! |
zan
|