范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

导航软件如何规划ampampquot最短路线ampampquot?

  程序员视角科普生活知识
  hello 大家好
  我是浩说
  关于"最短路线"这个问题
  我们生活中有一个典型应用:
  使用导航软件帮我们规划从 出发地 到 目的地 的最短路线
  今天我们就来研究一下:导航软件如何计算"最短路线"
  抽象
  首先我们需要将导航软件中的地图抽象成一种数据结构:图
  关于 图 的介绍,我用一张图片做简单说明
  图 的更多详细内容兄弟们可以过一下我之前的文章
  于是我们可以这样对应:
  顶点 > 地图上的路口
  边 > 两个路口间的道路
  入度和出度 > 道路的方向
  边的权重 > 两个路口间的距离
  按照上面的思路我们抽象成图就是这样的:
  数据结构是为算法服务的,我们将地图抽象成数据结构 图 之后,
  下一步就是在该数据结构上设计出一种算法来计算出最短路线。
  点个赞,证明你还爱我
  算法
  针对求"最短路径"的场景,有一种经典的算法叫做:
  "Dijkstra 算法" 由荷兰计算机科学家 Edsger Wybe Dijkstra 在1956年发现
  这也就是我们本篇的重点了,
  算法问题很难用一两句话解释清楚,所以接下来我将分步骤拆解"应用Dijkstra 算法计算最短路径"的过程,
  大家需要从过程中感受和体会Dijkstra 算法的思路和原理。
  先将图中每个顶点用编号表示,目标就是计算顶点1到8的最短距离
  接着我们准备两个数组:
  一个数组存放图中除起点以外的所有顶点 V = {2,3,4,5,6,7,8}
  另一个数组先存放起点 S = {1}
  我们以起点1为原点,逐步统计其它顶点到原点的距离,无法直接到达的顶点距离用/表示
  1
  统计结果如下:   dist 1-2:270   dist 1-3:300   dist 1-4:/   dist 1-5:200   dist 1-6:/   dist 1-7:/   dist 1-8:/   然后通过比较上面的结果选择最小的值,也就是dist 1-5,至此 "Dijkstra 算法"会暂时认定:   顶点1 到5 的最短距离为200。   此时将顶点5从数组V中移除,并添加至数组S:   V = {2,3,4,6,7,8}   S = {1,5}   所以数组S中的顶点其实就是表示"已经找到从原点到对应顶点的最短距离"的顶点集。   经过此步骤后, "Dijkstra 算法"暂时认定找到了从原点1至顶点5的最短路径,我们用绿色表做标记。   2
  该步骤与上一步逻辑相同,但区别在于:   由于我们找到了到达顶点5的最短路径,所以之前无法到达的顶点(4、6),在该步骤就可以通过顶点5间接的到达了   于是再次统计距离   dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-5 (200) + 5-6(310):510   dist 1-7:/   dist 1-8:/   除去已经被加入到数组S中的顶点,我们依然从剩下的距离中选出最短的,然后将该顶点从数组V移除并加入数组S   V = {3,4,6,7,8}   S = {1,5,2}   看到这里相信大家已经对"Dijkstra 算法"的逻辑有点感觉了,我们不妨简单梳理一下:   "Dijkstra 算法"需要准备两个数组,一个存放从起点至终点涉及到的所有顶点,另一个存放已经确定最短路径的顶点,   然后从原点开始,循环查找至下一顶点距离最短的顶点并将其从V移除然后添加至S中,直至V中顶点全部添加至S中。   当然,这其中还有一些细节需要注意,我们继续往下看。   3
  细节来了,注意看这里的顶点4,由于前两步我们打通了顶点2、5的最短距离,因此到达顶点4的路径有两条:   dist 1-4 >   1-5 (200) + 5-4(260):460   1-2 (270) + 2-4(210):480   而此时"Dijkstra 算法"将取距离小的作为最终结果。   最终统计的距离   dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-5 (200) + 5-6(310):510   dist 1-7:/   dist 1-8:/   距离最短的顶点为3:   V = {4,6,7,8}   S = {1,5,2,3}   4
  这一步顶点6和上一步顶点4出现了一样的情况,   由于我们打通了顶点3,所以到达顶点6的路径变成了两条   dist 1-6 >   1-5 (200) + 5-6(310):510   1-3 (300) + 3-6(180):480   依然选择距离短的作为最终结果。   dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-3 (300) + 3-6(180):480   dist 1-7:/   dist 1-8:/   顶点4加入S:   V = {6,7,8}   S = {1,5,2,3,4}   看到这一步相信大家对"Dijkstra 算法"的逻辑和一些细节已经有了大体的感受,后面的步骤就很好理解了,我们继续往下看。   5
  dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-3 (300) + 3-6(180):480   dist 1-7 > 1-4 (460) + 4-7(130):590   dist 1-8:/   顶点6加入S:   V = {7,8}   S = {1,5,2,3,4,6}   6
  dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-3 (300) + 3-6(180):480   dist 1-7:1-4 (460) + 4-7(130):590   dist 1-8:1-6 (480) + 6-8(100):580   V = {7}   S = {1,5,2,3,4,6,8}   7
  dist 1-2:270   dist 1-3:300   dist 1-4 > 1-5 (200) + 5-4(260):460   dist 1-5:200   dist 1-6 > 1-3 (300) + 3-6(180):480   dist 1-7:1-4 (460) + 4-7(130):590   dist 1-8:1-6 (480) + 6-8(100):580   V = {}   S = {1,5,2,3,4,6,8,7}   到这一步数组V已经为空,"Dijkstra 算法"就到此结束了。   兄弟们可能会有疑问,因为在下图中,由顶点7至顶点8这条路线并没有做判断,难道是"Dijkstra 算法"有问题吗?   我们回看一下刚才距离的计算结果   dist 1-7:1-4 (460) + 4-7(130):590   dist 1-8:1-6 (480) + 6-8(100):580   既然dist 1-7已经大于dist 1-8,   那么dist 1-7 + dist 7-8 必然是会大于dist 1-8的,所以这是符合逻辑的,无需再判断了。   到这里"Dijkstra 算法"就成功的帮我们规划出了最短路线:   dist 1-8 > 1-3 (300) + 3-6(180) + 6-8(100):580   听说好看的人都点赞分享了哦!

全方位瞄准别克GL8!起亚嘉华于8月5日上市,配2。0T发动机在本次上海车展进行展览的起亚嘉华MPV,近日由东风悦达起亚官方正式宣布将于8月5日进行国产上市销售。据悉曝光的申报信息显示,国产版嘉华车身长度达5155mm,将搭载2。0T发动机,简评百元高品质南卡S2蓝牙运动耳机小伙伴大家好,今天给大家安利一款高品质,高颜值,高性价比的蓝牙运动耳机南卡S2,南卡耳机是深圳市梦趣生活科技有限公司旗下的耳机,是目前国内成长最快的耳机产品之一,致力于为用户呈现出简评2698元的iQOONeo3值得入手吗?如果说iQOO3高刷新率的缺失让追求极致体验的玩家感到有点遗憾,而拥有高刷新率的Neo3则弥补了遗憾,2699的起售价刷新了骁龙865手机的最低价位,让预算不足的用户也能体验到顶级两分钟破五个亿是什么概念?京东家电的空调区做到了在百亿补贴和千亿优惠的刺激下,京东家电6月18日迎来销售大爆发。其中,空调2分钟破5亿,中央空调成交额同比增长500,空调换新用户量同比去年增长725。之所以能拿下这样的成绩,京东为魅族站台的前联发科高管25年芯片老兵朱尚祖大家还记得这个男人吗?前联发科高管朱尚祖,曾为魅族发布会站台,公开diss小米澎湃处理器,后闪电加入小米。2017年11月21日下午,前联发科智能手机芯片事业部创立者共同营运长(C阿里挥泪斩马谡?事情的背后可没这么简单4月27日下午消息,今天,阿里公布了蒋凡事件的调查处理结果。经阿里巴巴管理层讨论决定对蒋凡作以下处分1管理层提议并得到合伙人委员会批准,即日起取消阿里合伙人身份。2记过处分。3降级别克昂科威PLUS于6月19日上市,目标指向丰田汉兰达如今很多车企顺应市场需求推出所谓的PLUS版本,其中有很多仅仅改变外观内饰弄虚作假的车型,也不乏很多加大尺寸和融入众多高科技的车型。今天带来的别克昂科威PLUS艾维亚版便是其中一款全新丰田汉兰达开启预售价,入门级28万起,加价预购你会接受吗?丰田汉兰达是一台可以用家喻户晓来形容的一辆车。我们总是可以看到,很多车商都拿出自己的产品与其做比较,可想而知汉兰达在产品力和口碑上都是以王者的姿态存在。正是如此均衡的实力下,让汉兰大量ETC车主遭短信诈骗,有车主被骗走11。9万元近日,央视报道了一则ETC短信诈骗的新闻,据悉受害者四川巴中的冯先生手机收到一条短信,提醒他的ETC账户将于30日内失效。不知所措的冯先生便按照链接页面,不到数秒后,银行卡内的11理想ONE车主自称被割韭菜,特斯拉的套路都被李想学会了?近段时间,理想汽车相继公布了两大喜讯一5月25日,理想汽车宣布新款理想ONE正式上市。作为改款车型,新车在现款的基础上,对其自动驾驶辅助系统增程电动系统等方面进行了系统性升级。与此为妥协而生红米10X5月26日,Redmi10X5G手机正式发布,该机搭载了联发科天玑820芯片安兔兔跑分超过了41万红米10X对标荣耀X10的一系列营销则为该机赚足了眼球,首先红米10X性价比很强,
比亚迪元PLUS正式上市,13。18万元起售,全新纯电动e平台3。0打造近日,比亚迪元PLUS正式上市了,新车此前已经在广州车展正式亮相过了,一共推出了5款车型,售价为13。1815。98万元。新车是全新纯电动e平台3。0打造的首款SUV车型,外观也采销量增速超90用户增速70京东发力高端洗护发和功能洗护发京东超市2月28日发布2022个人洗护趋势报告,报告显示,洗护发行业呈现高端化功能型两大发展趋势,其中,高端洗护发产品销量同比增长超90,防脱功效洗护发产品销量增长超80。2022北京健康宝能从相册里选照片吗?健康宝拍的太丑怎么办?答案来了北京健康宝能从相册里选照片吗是大家经常问的,毕竟对于初次申请健康宝的友友来讲,因为不知道会自动拍照,所以照片出来很是难看,但由于又要常用,所以该话题就成了焦点。北京健康宝能从相册里字节跳动面试官整理出这25个常问面试题你会吗?软件测试岗位下面赠送一套软件测试相关资源软件测试相关工具软件测试练习集深入自动化测试Python学习手册Python编码规范大厂面试题和简历模板需要的小伙伴私信我资料免费领取目录1在搜索引擎中厨房卫生太脏了,生活中有什么小妙招?怎样保持厨房的整洁干净?专房专用。厨房的职能就是用来煮饭炒菜熬汤煎炸食物等烹饪活动的。如果你强行让它兼任棋牌室健身房卡拉OK厅休息室等,那么厨房就会因超负荷运转而变得杂乱无章拥堵不小鹏向上,何小鹏向前何小鹏从软件跨越到硬件,从小鹏汽车的投资人转换为CEO,重建了小鹏汽车,也重构了自己对于汽车行业的认知。文王海璐编辑宋玮实在骗不了自己小鹏汽车董事长CEO何小鹏17岁时的梦想是财务微软CEO纳德拉的儿子扎因去世年仅26岁据GeekWire报道,根据发给公司高管的信息,微软首席执行官萨提亚纳德拉和他的妻子阿努纳德拉的儿子扎因纳德拉于当地时间周一去世,享年26岁。西雅图儿童医院首席执行官JeffSpejava项目经验线上对分布式事务的处理事务是我们平时项目中对数据操作最为直接常用的方式,现在无论是大小公司都离不开对事务的操作,伴随业务的提升,客户量的积累也大大增加了对事务管理的难度。在本章节中将会讲到如下内容1线上微信小程序和APP的优缺点对比一面向用户群App面向所有的智能手机用户,约23亿台小程序面向微信用户,约8亿用户。二功能的实现App可以实现完整功能,灵活性强小程序仅限微信提供的接口功能。小程序低频非刚需轻量级3月1日起,微信支付宝迎新规!老百姓出门需要带点现金吗?互联网的身影充斥在人们生活中的方方面面,很难想象,如果今天的人们没有了互联网的帮助,生活又究竟是怎样的一番模样。互联网改善了人们的出行购物娱乐,还有支付等,而移动支付已经成为人们日数字人民币第三批试点城市即将亮相机构称产业链或持续受益据媒体报道,全国第三批数字人民币试点地区即将亮相。梳理全国多个地方的区域经济规划发现,力争跻身新一批数字人民币试点地区名单,成为多个地区的新年新目标。开年以来,河南福建黑龙江重庆广