编程之战 第二百二四章 加权有向图(下)

小说:编程之战 作者:程序小猿 更新时间:2024-08-06 08:41:20 源网站:顶点小说
  既然是加权有向图,那在这个场景下,有向性怎么体现呢?

  可以观察到,图中的每一个点都有8个方向可以离开。

  东,南,西,北,东北,东南,西南,西北。

  等于说,每个点和它周边的8个点都可以构成一条边。

  而边的权重等于两个点海拔差的绝对值。

  这样,这幅地图就转化为了加权有向图。

  然后,再求总权重最小,或者说总海拔差最小(最节省体力)的路径。

  对于求加权有向图两个点之间的最短路径,有一种经典的算法:

  dijkstra(迪杰斯特拉)算法。

  它会构造一棵最短路径树,提供从出发点[0,0]到图中任意一点的最短路径。

  那有了这么一棵树,要找出发点到目的地[3,3]的最短路径不就是很方便的事情了么?

  杨成很快就搞定了这个算法。

  不过,他发现了一个让人懊恼的问题:

  javascript在以前的版本一直不支持优先级队列。

  而优先级队列是这个算法能够加快效率的关键。

  他只好使用数组来做替代。

  从数组中查找最小的项,并且将其移除,可是一个开销不小的操作呢!
为更好的阅读体验,本站章节内容基于百度转码进行转码展示,如有问题请您到源站阅读, 转码声明
八零电子书邀请您进入最专业的小说搜索网站阅读编程之战,编程之战最新章节,编程之战 顶点小说!
可以使用回车、←→快捷键阅读
本站根据您的指令搜索各大小说站得到的链接列表,与本站立场无关
如果版权人认为在本站放置您的作品有损您的利益,请发邮件至,本站确认后将会立即删除。
Copyright©2018 八零电子书