这里使用Dijkstra(戴克斯特拉)算法,该算法起始点实际计算出到任一点的距离,计算两城市间的距离实际是一个副产物,所有一下图为例来说明,该图为无向图,顶点间所标数字即为两点之间的距离。

问题:求点D到点A的距离。

 初始状态:

集合S中 D(0):D到D的距离为0;

集合U中 A(∞):D不能直接到达A;B(∞) :D不能直接到达B;C(3):D直接到达C的距离为3;E(4):D直接到达E的距离为4;F(∞):D不能直接到达F;G(∞):D不能直接到达G。

第1步:由初始条件可以看出U集合中C到D的距离最小,故将C添加到集合S中,更新后,两集合关系如下:

D到C的最小距离为:3,D到C的路线为:

第2步:逐个判断集合S中元素到集合U中的距离,并将距离最小的点添加到集合S中

对A点 :

对B点:

对E点:

对F点:

对G点:

由上可以看出  距离最小为4,将E添加到集合S中,更新后的集合如下:

更新后,D到E的最短距离:4,D到E的最短路线为:

第3步,逐个判断集合S中元素到集合U中的距离,并将距离最小的点添加到集合S中

对A点:

对B点:

对F点:

对G点:

由上可以看出,距离最小为6,故将F点加入到S集合中,更新后S和U分别为

跟新后,D到F的最短距离为:6,最短路线为:

第4步:逐个判断集合S中元素到集合U中的距离,并将距离最小的点添加到集合S中

对A点:

对B点:

对G点:

由上可以看出,距离最小为12,故将G点加入到S集合中,更新后S和U分别为

更新后,D到G的距离最短:12,最短路线:

第5步:逐个判断集合S中元素到集合U中的距离,并将距离最小的点添加到集合S中

对A点:

对B点:

由上可以看出,距离最小为13,故将G点加入到S集合中,更新后S和U分别为

更新后,D到B的最短路线为:13,D到B最短路线为

   或

第6步:逐个判断集合S中元素到集合U中的距离,并将距离最小的点添加到集合S中

对A点(D到B的最短路线有2条,我们可以任选一条,这里选D→C→B)

由上可以看出, 距离最小为22,故将G点加入到S集合中,更新后S和U分别为

更新后,D到A的最短路线为:22,D到B最短路线为

Dijkstra 计算两地间的最短距离相关推荐

  1. java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离

    现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...

  2. 给定经纬度计算距离_根据经纬度计算两地间的距离

    import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...

  3. 欧几里得最短距离公式_推荐算法原理(二)欧几里得距离计算物品间相似度

    在上篇文章中介绍了如何利用余弦定理计算两个物品间的相似度:KiKlaus:推荐算法原理(一)余弦定理计算物品间相似度​zhuanlan.zhihu.com 这种计算方法虽然简单,但是在衡量空间两个向量 ...

  4. 根据经纬度计算两地距离

    最近工作需要,网上搜索了下根据经纬度计算两地距离的方法,发现要么是几何法,画图.作一堆辅助线,然后证明推理,要么二话不说直接套公式.这篇文章介绍一种容易理解的方式来求这个距离. 0b00 思路 地球是 ...

  5. php地图距离计算,php百度地图计算两地现实距离

    请自行到百度地图官网申请您的ak <!--前端获取手机经纬度的代码--> <!--<!DOCTYPE html>--> <!--<html lang=& ...

  6. 根据两个位置的经纬度,来计算两地的距离(单位为KM)

    上代码 /*** 根据两个位置的经纬度,来计算两地的距离(单位为KM)* 参数为double类型* long1 位置1经度* lat1 位置1纬度* long2 位置2经度* lat2 位置2纬度*/ ...

  7. 根据地球上任意两点的经纬度计算两点间的距离

    http://blog.chinaunix.net/u/6776/showart_694778.html 地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米, ...

  8. python计算两地之间的开车时间,保存到Excel中

    文章目录 一.去[百度地图开发平台](https://lbsyun.baidu.com/apiconsole/key/create#/home)申请API的AK 二.代码 三.效果 四.生成可执行的e ...

  9. 1815. 计算两点间的距离

    水题也要注意一点,确实简单,不过还是错了,错在格式化输出! 1815. 计算两点间的距离     总提交数量: 5934 通过数量: 1093 评价: 1.9/5.0(38 票) 012345     ...

最新文章

  1. jmeter提取多个变量的多个值_jmeter用一个正则提取器提取多个值的两种方法
  2. Hackerrank - The Grid Search
  3. Lesson 6.动态计算图与梯度下降入门
  4. Web MVC Rest 处理流程分析
  5. 公开课 | 如何轻松上手华为最新开源框架MindSpore?
  6. 【Pytorch神经网络理论篇】 14 过拟合问题的优化技巧(一):基本概念+正则化+数据增大
  7. Apollo 分布式配置中心 搭建篇
  8. 我的Android进阶之旅------解决:debug-stripped.ap_' specified for property 'resourceFile' does not exist....
  9. mybatis-generator逆向工程设置不生成Example类
  10. 《HelloGitHub》第 13 期
  11. json字符生成Java实体类--用好bejson
  12. UI设计作品中经常会用到的设计技巧?|优漫动游
  13. iphone8引发的AR大事件
  14. RabbitMQ高可用--Quorum Queue(仲裁队列)的用法
  15. 分数的加法,有理数加法
  16. iOS 通过定位获取常驻后台
  17. Win10更新后连不上网,电脑win10系统更新后连不上网
  18. 前端HTTP、浏览器面试题
  19. QSPI Flash驱动代码分析 (QSPI控制器初始化)
  20. 华为服务器1u系列,1u服务器是什么意思

热门文章

  1. 单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警
  2. 2台电脑一根网线传文件_Iphone 和PC如何共享文件
  3. 客制化键盘编程_客制化键盘劝退指南
  4. 485光纤转换器产品分类介绍
  5. 光纤模块与光纤收发器的区别
  6. 【渝粤教育】国家开放大学2018年秋季 0653-21T机电控制与可编程控制技术 参考试题
  7. [渝粤教育] 广东-国家-开放大学 21秋期末考试建筑工程概预算10326k2
  8. 【渝粤题库】陕西师范大学202011 微观经济学 作业 (专升本、高起本)
  9. java 正则表达式 替换括号,Java正则表达式:如何替换方括号内的所有字符?
  10. catia钣金根据线段折弯_钣金折弯加工注意事项有哪些?钣金折弯要点介绍