求出下面任意两个点之间的最短路径:

如何才能求出两点之间的最短路径呢?大家都知道学几何的时候,有一条定理就是:两点之间线段最短。但是在实际情况中,我往往两点之间没有之间的通路而是一些曲折的线路。

上面已经给出了两点之间的线路路径,不能再通过两点时间的路径来计算他们最短路径了,根据以往的经验要想让两点之间的路程变短,只能引入第三个点,通过第三个点的中转才能缩短两点之间的路径。

通过上图可知由4->3的直接路径是12,但是通过1来中转的话,路径就缩短为11,如果通过1和2来中转的话,路径就进一步缩短为11了。

任意两点之间的最短路径都要经过1号顶点之后他们之间的最短路径为:

     for (int i = 1; i < VERTEX_NUM; i++) {for (int j = 0; j < VERTEX_NUM; j++) {if (_vertex[i][j]>_vertex[i][1]+_vertex[1][j]) {_vertex[i][j] = _vertex[i][1] + _vertex[1][j];}}}

经过1号点和2号点之后的路径是否更短

for (int i = 1; i < VERTEX_NUM; i++) {for (int j = 0; j < VERTEX_NUM; j++) {if (_vertex[i][j]>_vertex[i][1]+_vertex[1][j]) {_vertex[i][j] = _vertex[i][1] + _vertex[1][j];}}}for (int i = 1; i < VERTEX_NUM; i++) {for (int j = 0; j < VERTEX_NUM; j++) {if (_vertex[i][j]>_vertex[i][2]+_vertex[1][j]) {_vertex[i][j] = _vertex[i][2] + _vertex[2][j];}}}

综上所述,任意两点之间的最短路径,经过任意点中转后的最短路径为:

 for (int k = 1; k < VERTEX_NUM; k++) {for (int i = 1; i < VERTEX_NUM; i++) {for (int j = 0; j < VERTEX_NUM; j++) {if (_vertex[i][j]>_vertex[i][k]+_vertex[k][j]) {_vertex[i][j] = _vertex[i][k] + _vertex[k][j];}}}}

aaa

使用Floyd-Warshall算法求出两点之间的最短路径相关推荐

  1. C++floyd warshall算法求最短路径(附完整源码)

    C++floyd warshall算法求最短路径 floyd warshall算法求最短路径的完整源码(定义,实现,main函数测试) floyd warshall算法求最短路径的完整源码(定义,实现 ...

  2. AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_C All Pairs Shortest Path Input ...

  3. Dijkstra最短路由算法,求任意两点之间的最短距离【Java】

    一.问题 求下图中节点0到节点5之间的最短距离 二.方法 Dijkstra最短路由算法.本文不再赘述,直接上代码,如果不懂,可以参考 文章 三.代码 public class MyDijkstra { ...

  4. warshall算法求传递闭包c++_【建模小课堂】图论算法

    图论算法 图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式.很多问题都可以转化为图论问题,然后用图论的基本算法加以解决.这类问题算法主要包括Dijkstra ...

  5. 迪杰斯特拉算法求经纬度坐标的最短路径_Postgresql构建经纬度查询两点之间的最短路径...

    前言 前段时间遇到了实际的需求,在特定的路网中查询最短路径.同时配合 Cesium 进行动态显示. 需求 动态查询两点之间的最短路径(起点固定): 查询的路径高亮显示: Cesium 对生成的路径进行 ...

  6. C#求空间两点之间的距离

    问题 求空间两点之间的距离 算法思想 d=sqrt(pow(x₁−x₂)+pow(y₁−y₂)+pow(z₁−z₂))d=sqrt(pow(x₁-x₂)+pow(y₁-y₂)+pow(z₁-z₂)) ...

  7. Floyd Warshall算法

    Description: 描述: This is a very popular interview problem to find all pair shortest paths in any gra ...

  8. 用Dijkstra算法找到图上两点之间的最短路径

    Finding the shortest path between two points on a graph is a common problem in data structures, espe ...

  9. C语言用warshall算法求传递闭包transitive closure(附完整源码)

    用warshall算法求传递闭包transitive closure warshall算法求传递闭包完整源码 warshall算法求传递闭包完整源码 #include <stdbool.h> ...

最新文章

  1. paip.提升效率--调试--日志系统日志参数含义---python
  2. mysql高效率写法_mysql高效率随机获取n条数据写法
  3. python面试经典问题_Python面试中最常见的25个问题-结束
  4. C++教程之lambda表达式一
  5. Unobtrusive JavaScript介绍
  6. Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图
  7. layui option 动态添加_layui select动态添加option的实例
  8. 计算机都要学python吗_大学计算机要不要学python?
  9. Hadoop2.0安装
  10. Java-集合第二篇Set集合
  11. [Android 5.1] 多用户管理UserManager相关整理
  12. CCAI2018 | 韩家炜:大规模文本数据挖掘的新方向
  13. 编译原理学习之:有限状态机(Finate-state Automaton)
  14. 要重复多少次变成潜意识_什么是潜意识?如何利用潜意识为自己步步高升
  15. 网页打印宋体不支持加粗效果
  16. 计算机图文混排知识点,图文混排
  17. netty tcp空闲设置
  18. SVN 将代码回滚到之前的版本的方法
  19. android ui界面
  20. 传统与深度学习图像分割算法

热门文章

  1. 深度学习中的对抗损失怎么使用
  2. 身价过亿的妖媚子对小码农说串口能传送我的爱吗?
  3. 原生js实现小方块拖拽
  4. 线性离散系统的分析与校正
  5. 洛谷 P1008 三连击 题解
  6. Word文档中,文字下面的波浪线怎么去掉
  7. U3D游戏开发框架(四)——音频管理器
  8. 欧拉函数(求与n互质的数的个数)
  9. 利用Python导入股票列表
  10. 顾客价值层级-名词解释06