- 在线时间
- 1 小时
- 最后登录
- 2017-2-1
- 注册时间
- 2009-7-3
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 288 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 112
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 50
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   6% 该用户从未签到
- 自我介绍
- 大家好!请多多指教~
 |
clear;6 ]& ~) A; e! b. h$ }( O1 p
clc;4 \: V* Z4 a( ^: N4 M6 G# H
M=10000;%无穷远距离
y8 F: x2 |9 b+ i! ha(1,:)=[0,50,M,40,25,10];
* ^% R6 L0 j# X6 R. ka(2,:)=[zeros(1,2),15,20,M,25];
& B" p% t3 t3 W" va(3,:)=[zeros(1,3),10,20,M];& z- p: I u, g; f& F
a(4,:)=[zeros(1,4),10,25];
: R+ _ ~% M+ v9 U* M0 U: P3 `a(5,:)=[zeros(1,5),55];
3 }4 u" Z2 O& i/ h6 fa(6,:)=zeros(1,6);
& F; [+ P% J$ s% h/ ca=a+a';%a66邻接矩阵,无向图
N% E% @1 y7 r! `! R! kpb(1:length(a))=0;pb(1)=1;%存放p,t标号信息* C* Z& V* x+ {" L
index1=1;%存放标号顶点顺序3 M4 X4 z b, u5 V% A# U
index2=ones(1,length(a));%存放始点到第i点最短通路中第i顶点前一顶点的序号) w5 q, p2 M: f7 r5 [7 m
d(1:length(a))=M;d(1)=0;%存放由始点到第i点最短通路的值: d( p4 ]) F7 R0 Z
temp=1;%算c1到其它点的最短路
# D5 c3 o+ p. ^# q$ M, t7 Pwhile sum(pb)<length(a)9 U" a& p- i; A, y4 f' m
tb=find(pb==0);%开始算第tb个顶点的最短路
" [; \/ }& W4 ~3 a+ K" [- t" Z: ` d(tb)=min(d(tb),d(temp)+a(temp,tb));' v% @$ M8 G; L' `: ?- T; S
tmpb=find(d(tb)==min(d(tb)));7 J* u) i# H) C ^
temp=tb(tmpb(1));4 m, c% w# h% {
pb(temp)=1;
; h8 b0 m5 c% B! P, f# s4 ~: P, [ index1=[index1,temp];
' x; t/ Z8 n$ ]/ A/ J. j7 a' S" H2 p index=index1(find(d(index1)==d(temp)-a(temp,index1)));3 C7 u: H( F M, `8 b$ \
if length(index)>=2
. c* ?1 J' @5 N5 ?, E1 L* A3 c index=index(1);+ E: I" s3 _. O8 n* y" s' o
end& U, X) j4 f- Z& P! G, s" @* [
index2(temp)=index;
0 O. J( I( m3 i6 Oend
0 d+ |) p4 a$ R% z- b. jd, index1, index2
k6 Y) n' e# K; T! W% k2 C
' a4 F" A/ M( P, S+ n7 A3 R从没加注释那一行就看不太懂了,求问啊,感激不尽! |
zan
|