图论最短路径问题matlab例题,Matlab中图论求最短路径之Dijkstra 十个城市·最短路径 求指导...

function dijkstra()

n=10;             % 节点个数

a=ones(n)+inf;

for i=1:n

a(i,i)=0;

end

a(1,2)=8; a(1,3)=5;a(1,4)=9; a(1,5)=2; a(1,6)=4;

a(1,7)=2; a(1,8)=6; a(1,9)=7;a(1,10)=2;a(2,3)=9;

a(2,4)=5; a(2,5)=7; a(2,6)=8;  a(2,7)=1; a(2,8)=8;

a(2,9)=4; a(2,10)=2; a(3,4)=7; a(3,5)=9; a(3,6)=1;

a(3,7)=7; a(3,8)=2; a(3,9)=2; a(3,10)=7; a(4,5)=3;

a(4,6)=7; a(4,7)=1; a(4,8)=7; a(4,9)=5; a(4,10)=8;

a(5,6)=8;a(5,7)=1;a(5,8)=6;a(5,9)=5;a(5,10)=5;

a(6,7)=9;a(6,8)=4;a(6,9)=8;a(6,10)=6;

a(7,8)=8;a(7,9)=6;a(7,10)=1;

a(8,9)=1;a(8,10)=1;

a(9,10)=1;

for i=2:10        % 设置为对称矩阵

for j=1:(i-1)

a(i,j)=a(j,i);

end

end

% the main program

for k=1:9   % 节点循环,依次寻找与后节点的最短距离

% k=1;

b=[1:(k-1),(k+1):n];   % b矩阵为除去自身节点外的其他所有节点标号,b矩阵是逐渐减小的

kk=length(b);          % kk为b矩阵的长度,kk值逐渐减小

a_id=k;                % a_id从自身节点标号开始,也是变化的

b1=[(k+1):n];          % b1矩阵为自身节点以后的节点标号

kk1=length(b1);        % kk1为

while kk>0

for j=1:kk1

te=a(k,a_id)+a(a_id,b1(j));

if te

a(k,b1(j))=te;

end

end

miid=1;

for j=2:kk

if a(k,b(j))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值