- 在线时间
- 1 小时
- 最后登录
- 2017-2-1
- 注册时间
- 2009-7-3
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 288 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 112
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 50
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   6% 该用户从未签到
- 自我介绍
- 大家好!请多多指教~
 |
clear;! l9 ]8 |" f; L- U: l1 n( v
clc;
A& y1 P8 j5 }M=10000;%无穷远距离
- w4 A( i) G" Q; N. P \+ J: ca(1,:)=[0,50,M,40,25,10];! t7 X, x+ H2 ^# N8 g
a(2,:)=[zeros(1,2),15,20,M,25];
% t1 J% N: X. b, X3 v _a(3,:)=[zeros(1,3),10,20,M];5 i6 k! A& L7 k; u
a(4,:)=[zeros(1,4),10,25];
0 F' x- E9 y" Ba(5,:)=[zeros(1,5),55];
4 A$ `% S( T/ N7 {! p& Q9 Ea(6,:)=zeros(1,6);
8 n- j1 Q s. R. g# ma=a+a';%a66邻接矩阵,无向图. k! J6 \0 U% K0 {$ O
pb(1:length(a))=0;pb(1)=1;%存放p,t标号信息+ D# o7 A l( x) r: Z# d
index1=1;%存放标号顶点顺序/ e% z0 D" x( z# w$ G
index2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号$ c0 O% X7 s$ c+ ~0 Q
d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值
; \+ o7 N* W3 u" E! i9 ttemp=1;%算c1到其它点的最短路5 ~! s3 K I& \2 w0 w. k4 v
while sum(pb)<length(a)" e9 g+ g; ~' ~
tb=find(pb==0);%开始算第tb个顶点的最短路9 _/ Q6 e1 r; M
d(tb)=min(d(tb),d(temp)+a(temp,tb));
1 U- a+ y8 x' t( y8 Z tmpb=find(d(tb)==min(d(tb)));3 {; s% P: C) f
temp=tb(tmpb(1));$ s& f# w7 i2 v9 p7 \' K' v
pb(temp)=1;
7 C0 G1 t+ q2 P, U index1=[index1,temp];
# e: T9 |' S {' S; D- K! R3 f index=index1(find(d(index1)==d(temp)-a(temp,index1)));* e( V9 k/ Q' g
if length(index)>=2
! B9 Q( j5 t) \3 e) |- h index=index(1);
' r _' ?. m$ m* D8 U2 Z- b3 o3 H: A end
+ J$ l# d2 s, a: m k! N6 F index2(temp)=index;4 P$ \4 x5 m: Y/ j' G7 x
end0 ~. Y3 T' @# [( ~ \
d, index1, index2
: D4 G; @, N9 f2 B6 e$ x
9 d7 Y* `- J: P) e# S+ _从没加注释那一行就看不太懂了,求问啊,感激不尽! |
zan
|