
dijkstra最短路径Matlab代码
发布日期:2021-05-14 16:02:29
浏览次数:22
分类:精选文章
本文共 1084 字,大约阅读时间需要 3 分钟。
%dijkstra最短路径
(1) file1.m function [mydistance,mypath]=mydijkstra(a,sb,db); % 输入:a—邻接矩阵,a(i,j)是指i到j之间的距离,可以是有向的 % sb—起点的标号, db—终点的标号 % 输出:mydistance—最短路的距离, mypath—最短路的路径 n=size(a,1); visited(1:n) = 0; distance(1:n) = inf; distance(sb) = 0; %起点到各顶点距离的初始化 visited(sb)=1; u=sb; %u为最新的P标号顶点 parent(1:n) = 0; %前驱顶点的初始化 for i = 1: n-1 id=find(visited==0); %查找未标号的顶点 for v = id if a(u, v) + distance(u) < distance(v) distance(v) = distance(u) + a(u, v); %修改标号值 parent(v) = u; end end temp=distance; temp(visited ==1)=inf; %已标号点的距离换成无穷 [t, u] = min(temp); %找标号值最小的顶点 visited(u) = 1; %标记已经标号的顶点 end mypath = []; if parent(db) ~= 0 %如果存在路! t = db; mypath = [db]; while t ~= sb p = parent(t); mypath = [p mypath]; t = p; end end mydistance = distance(db);(2)file2.m
clc,clear, a = [0 121.66 inf 117.41 inf inf inf inf; inf 0 75.50 inf 65.4 inf inf inf; inf inf 0 inf inf 113.10 inf inf; inf inf inf 0 156.9 inf 93.59 inf; inf inf inf inf 0 73.2 inf inf; inf inf inf inf inf 0 inf 50.6; inf inf inf inf inf inf 0 198.74; inf inf inf inf inf inf inf 0]; [mydistance,mypath] = mydijkstra(a, 1, 8)发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月24日 04时04分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【SpringBoot】如何配置热部署
2021-05-15
【rabbitMQ】04 如何实现高可用?
2021-05-15
【自考】之信息资源管理(一)
2021-05-15
C# 文本框限制大全
2021-05-15
setup facatory9.0打包详细教程(含静默安装和卸载)
2021-05-15
ionic4 路由跳转传值
2021-05-15
ionic4 接收API数据库传值并显示
2021-05-15
CSDN 怎么写出好看的博客
2021-05-15
ENDC含义
2021-05-15
Java基本概念:方法
2021-05-15
ciscn_2019_n_3 题解
2021-05-15
pwn题shellcode收集
2021-05-15
OWASP Top 10 2017 学习笔记
2021-05-15
Linux安装软件时出现软件包不满足依赖关系libxx
2021-05-15
使用docker搭建nfs实现容器间共享文件 nfs server nfs client
2021-05-15