#include <iostream>
using namespace std;
#define INFINE 99999999//假装我是无穷大
const int N = 1010;
bool vis[N];
int dis[N];
int graph[N][N];//图
//Dijkstra算法计算点v到图上各个点的最短距离
void Dijkstra(int graph[][N], int v, int n) {//v为起点,//n为点个个数for (int i = 1; i <= n; i++)dis[i] = graph[v][i];vis[v] = true;dis[v] = 0;for (int i = 2; i <= n; i++) {int minx = INFINE;int minid = 0;for (int j = 1; j <= n; j++) {if (!vis[j] && dis[j] < minx) {minx = dis[j];minid = j;}}vis[minid] = true;for (int k = 1; k <= n; k++) {if (graph[minid][k] < INFINE)if (dis[k] > dis[minid] + graph[minid][k])dis[k] = dis[minid] + graph[minid][k];}}for (int i = 1; i <= n; i++)cout << dis[i] << " ";cout << endl;
}int main() {int vertexnum, arcnum;cin >> vertexnum >> arcnum;//点的个数,边的条数for (int i = 1; i <= vertexnum; i++)for (int j = 1; j <= vertexnum; j++)graph[i][j] = INFINE;for (int i = 1; i <= arcnum; i++) {int a, b, w;cin >> a >> b >> w;//a为起点,b为终点,w为权重graph[a][b] = w;}Dijkstra(graph, 1, vertexnum);//以点1为起点return 0;
}

C++实现有向图最短路径-Dijkstra单源最短路径算法相关推荐

  1. C++实现dijkstra单源最短路径算法-邻接表+优先队列

    dijkstra单源最短路径算法不允许边权值为负,适用的图范围可以很大. 代码如下: #include <iostream> #include <queue> #include ...

  2. Dijkstra单源最短路径算法

    这里写目录标题 一.算法原理 二.MATLAB实现 三.参考文献 一.算法原理 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶 ...

  3. Dijkstra 单源最短路径算法 Java实现

    Dijkstra 单源最短路径算法 Java实现 算法导入 算法核心 复杂度分析 时间复杂度 空间复杂度 代码实现 参考资料 结尾 算法导入 在图论中,求最短路径有一个经典的算法 Dijkstra算法 ...

  4. 55、【图】Dijkstra求最短路径(单源最短路径+边权重为正数)(C/C++版)

    算法介绍 Dijkstra算法是基于贪心思想,用于实现只含有正权边的单源最短路径问题,单源路径是从一个固定起始点出发到其余各点的路径. 算法过程: 首先,获取起始点到其余点的距离,然后从起始点出发,每 ...

  5. 数据结构(十五)dijkstra单源最短路径

    1 算法原理 假设图中有顶点V={A,B,C,D,E,F},我们要求取A到其他顶点的最短距离.假设我们要求取定点A到其它顶点的最短路径,先把顶点A到源的距离设置为0,其他的距离设置为无穷大.准备两个集 ...

  6. 单源顶点最短路径java_单源最短路径-Dijkstra 算法

    Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 问题:求a点到各个点的最短距离,如下图 ...

  7. java有向图最短路径_单源最短路径之Java实现(使用Java内置优先队列)

    import java.util.*; /** * 用堆实现了从一个点到其他点的最短路径 * @author 李赫元 */ public class ShortestPath { /**有n个节点*/ ...

  8. C++实现dijkstra单源最短路径

    代码如下: #include <iostream> using namespace std; const int N = 30; typedef char ElemType; const ...

  9. 【算法】【ACM】深入理解Dijkstra算法(单源最短路径算法)

    Dijkstra算法是用来求解从某个源点到其他各顶点的最短路径(单源最短路径). 下面的Dijkstra算法的讲解都是基于这个有向图,在遇到其他问题可以类比. 算法的基本思想: 把图中的定点分成两组, ...

最新文章

  1. 实验问题总结与分享之×××(Virtual Private Network)
  2. auto-sklearn案例解析二
  3. 官司在即,品胜董事长对话苹果副总裁,打脸了谁?
  4. JS获取元素属性和自定义属性
  5. 关闭TOMCAT日志的三个方法
  6. 最新影视小程序源码去授权版免费下载
  7. 防止电脑自动锁屏(Windows系统)
  8. 2022考研资料每日更新(2021.07.28)
  9. iframe 跳转到其他页面
  10. Linux下和编译器、程序的运行、环境变量等相关的常见问题
  11. 【图论·习题】白银莲花池
  12. 快收藏ReactOS 新手指南
  13. 广东省数字经济行业发展动态及十四五前景预测分析报告2022-2027年
  14. 120个微信小程序源码,打包下载
  15. 关于自动化诊断测试(CANoe.Diva的应用)
  16. 漫话:什么是 https ?这应该是全网把 https 讲的最好的一篇文章了
  17. 【Python爬虫】按时爬取京东几类自营手机型号价格参数并存入数据库
  18. Android中的MVVM架构设计-实用篇(五)实现RecyclerView列表展示
  19. CAT分布式监控系统:CAT功能介绍,CAT监控系统是什么,能做什么?
  20. 【PYQT】制作可以显示图片的抽卡模拟器

热门文章

  1. [Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印
  2. sql 之like 和通配符%,_(mysql)
  3. 半圆和圆锥在一起会产生什么神奇的反应?
  4. 公交车座椅上有个洞,竟是为了…很多人都不知道
  5. 谈谈女友卸妆后的感受?
  6. 如何使用TensorFlow玩转深度学习?
  7. 每天20分钟,只需一年,一年级学生英语听力达到六年级水平!关键是坚持一点都不难!
  8. Java类集-SortedSet接口
  9. easyui 修改单元格内容_初学Excel办公软件快速修改文字的方法
  10. java wrapper linux_Java Service Wrapper linux 服务 java 自启动