伪代码:

//  初始化,设从0开始

for i=[0,n)

dist[i] = map[0][i]

visit[0] = true;

for i=[1,n)

//  寻找最短路径(s,t),同时把t加入S集合

min = MAX_VALUE

for j=[0,n)

if !visit[j] && dist[j]

min = dist[j]//记录最小值和最小值的下标

min_j = j

visit[j] = true

//  松弛边(t,v),其中v为顶点

for k=[0,n)

if !visit[k] && dist[k]>dist[j]+tab[j][k]

dist[k] = dist[j]+tab[j][k]

#include

#define INFINITY 0x7f7f7f7f //顶点之间不可达时,map[][]初始化为该值

#define MAXNUM 100

int map[MAXNUM][MAXNUM];//这三个数组看名字都懂的

int visited[MAXNUM];

int dist[MAXNUM];

int n,e,startp,endp;//e-边数,n-顶点数,startp-源点,endp-目标点

int dijkstra(){

int i,j,k,min,min_i;

int res = 0;

for(i = 0;i < n;i++){

dist[i] = map[startp][i];

visited[i] = 0;

}

visited[startp] = 1;

for(i = 1;i < n;i++){

min = INFINITY;

for(j = 0;j < n;j++){

if(!visited[j] && dist[j] < min){

min = dist[j];

min_i = j;

}

}

visited[min_i] = 1;

for(k = 0;k < n;k++){

if(!visited[k] && (dist[k] > (dist[min_i] + map[min_i][k])))

dist[k] = dist[min_i] + map[min_i][k];

}

}

return dist[endp];

}

注意:表示边不可达的值不能太大,整型为32的机器绝不能设置为0x7FFFFFFF,因为计算dist[k]>dist[j]+tab[j][k]时会溢出导致结果出错。

dijkstra伪代码翻译java,Dijkstra算法的伪代码和C语言版本,还是模版相关推荐

  1. dijkstra邻接表_掌握算法-图论-最短路径算法-Dijkstra算法

    如果图是赋权图,那么问题就变得更困难了不过我们仍然可以使用来自无权情形时的想法. 我们保留所有与前面相同的信息.因此,每个顶点或者标记为Known的,或者标记为Unknown的.像之前一样,对每一个顶 ...

  2. 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

    写在前面 最近我在学习一门名叫<智能自主机器人及系统>的课程,虽然跟过去所学的<机器人学>在部分内容上有所重复,但该课程的应用性更强.对于不同的机器人,如差速轮式车.四轮车.四 ...

  3. 无人驾驶之路径规划:Dijkstra , A*, D*, D* Lite算法

    无人驾驶系统概述 上图为一无人驾驶车辆的简易系统框图.无人车辆首先通过摄像头,雷达之类的传感器来感知外部的信息,借助GPS/IMU等设备来确定自车在地理上的绝对位置以及姿态.紧接着,软件算法层面会将这 ...

  4. 关联规则java代码_重量挖掘关联规则挖掘方法,哪个大神可以将以下伪代码转换为Java代码?...

    重量挖掘关联规则挖掘方法,哪个大神可以将以下伪代码转换为Java代码? 10 改进的加权关联规则算法的基本步骤与Apriori算法相似: 首先找到加权支持度不小于用户指定的最小加权支持度的所有频繁项集 ...

  5. 算法描述怎么写伪代码java_算法描述---伪代码

    算法描述 算法描述是指对设计出的算法,用一种方式进行详细的描述,以便与人交流.描述可以使用自然语言.伪代码,也可使用程序流程图,但描述的结果必须满足算法的五个特征. 使用自然语言描述算法显然很有吸引力 ...

  6. 最短路径(Dijkstra、Bellman-Ford和SPFA算法)

    最短路径(Dijkstra.Bellman-Ford和SPFA算法) 前言 图的存储方式 邻接矩阵 邻接表 链表建立 利用vector 结构体 核心思路 Dijkstra算法 图解 基本思想 求解步骤 ...

  7. 《趣题学算法》—第0章0.3节算法的伪代码描述

    本节书摘来自异步社区<趣题学算法>一书中的第0章0.3节算法的伪代码描述,作者徐子珊,更多章节内容可以访问云栖社区"异步社区"公众号查看. 0.3 算法的伪代码描述 上 ...

  8. dijkstra标号法表格_dijkstra算法模板及其用法

    Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Di ...

  9. Dijkstra最优路径的算法

    Dijkstra最优路径的算法: 1 最短路径算法 在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短.最短路径问题是图论 ...

最新文章

  1. 谈从10亿个数中找出前10万个最大的
  2. 10道C++输出易错笔试题收集
  3. ML:MLOps系列讲解之《CRISP-ML (Q)ML生命周期过程—了解机器学习开发的标准过程模型—业务和数据理解→数据工程(数据准备)→ML模型工程→评估ML模型→模型部署→模型监控和维护》解读
  4. 成功解决ValueError: Expected 2D array, got 1D array instead: Reshape your data either using array.reshap
  5. 移动端 Web 开发踩坑之旅
  6. 【脚本整理】docker-compose 部署prometheus + grafana
  7. 前端技术分享:什么是MongoDB数据库?
  8. JFreeChart相关类中文说明
  9. jvm 参数-server_JVM选项:-client vs -server
  10. c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?
  11. $@ $# $2 $0 $* Linux 参数使用
  12. 不用if/while等操作实现
  13. 对Linux 目录的认识
  14. 最便宜的855旗舰了,可惜是它
  15. [论文阅读] Prototype Augmentation and Self-Supervision for Incremental Learning
  16. 【SAP业务模式】之ICS(三):前台操作
  17. 2.7配置自定义的Formatters
  18. 手机号码归属地全库生成
  19. 如何自己制作身份证扫描件?
  20. 微信公众服务号申请、认证(开通支付)-微信开发图文教程

热门文章

  1. c语言函数与指针,C语言指针与函数篇
  2. 帆软按钮控件变查询_如何设置finereport按钮控件的可用时间
  3. easyui不同的jsp页面之间混乱_JSP+SSM+Mysql实现的图书馆预约占座管理系统
  4. 2019 牛客多校第三场 B Crazy Binary String
  5. 【博弈】Codeforces Round #573 (Div. 1) Tokitsukaze, CSL and Stone Game
  6. 软件测试:第六次作业
  7. Java 判断是否包含指定的子串 contains()
  8. 各位加了一天班累了吧?那我们来继续未完的表单验证吧
  9. leetcode 1189 python
  10. 二叉树——求先序排列(洛谷 P1030)