博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码高亮测试
阅读量:5167 次
发布时间:2019-06-13

本文共 868 字,大约阅读时间需要 2 分钟。

function [mydistance,mypath]=mydijkstra(a,sb,db)%寻找i,j两点最短路径% 输入: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;       %标记已经标号的顶点endmypath = [];if parent(db) ~= 0   %如果存在路!    t = db; mypath = [db];    while t ~= sb        p = parent(t);        mypath = [p mypath];        t = p;    endendmydistance = distance(db);end

转载于:https://www.cnblogs.com/ctgu/p/11481352.html

你可能感兴趣的文章
[置顶] ListBox控件的数据绑定
查看>>
链表插入排序
查看>>
http://blog.csdn.net/yunye114105/article/details/7997041
查看>>
设计模式这个东西 刚刚发现几种模式好像大同小异啊
查看>>
关于 主键和外键
查看>>
python集合的交,差,并,补集合运算汇总
查看>>
校园分期支付的机遇和风险
查看>>
怕忘记-windows 2003服务器安装Node.js NPM
查看>>
一鍵分享(優化后)
查看>>
dcm4che 的依赖无法下载
查看>>
cygwin主要命令
查看>>
多线程存在哪些风险
查看>>
洛谷P2692 覆盖 题解
查看>>
Linux下清理内存和Cache方法见下文:
查看>>
【AngularJs-模块篇-Form篇】
查看>>
支持向量基
查看>>
单链表 类
查看>>
类的组合 构造函数的用法
查看>>
ORACLE SQL:经典查询练手第三篇
查看>>
ubuntu 包管理
查看>>