Dijkstra的算法实现

时间:2012-10-29 01:21:30

标签: javascript graph-theory dijkstra

所以我正在编写Dijkstra算法的JavaScript实现。

我从Wikipedia page中读了很多,这帮助我将步骤转换为代码。我还阅读了this Stack Overflow question,这是我提问的一部分。

  

从A,唯一的路径是B,这给了我们

     

O => AB = 12;

     

O => C = 7

     

C现在是最低距离,是新的当前节点

     

O => CD = 8

     

由于D是目的地而且8< 12,选择路线CD。

如何将此决定实施到代码中?现在,我的脚本基于哪个节点选择哪个节点与当前节点相邻,是否需要通过这种新的评估来运行每个决策?

顺便说一下,here是我的(杂乱)代码。

1 个答案:

答案 0 :(得分:2)

  

我的脚本基于哪个节点选择哪个节点与当前节点相邻

没有。您的connectedNodes列表(按距离排序)应该是全局的,不仅适用于当前节点。

然后,对于第一个(最小距离)节点,将所有未访问的邻居添加到列表中,仍然按距离排序。标记当前访问的节点,继续下一个最小距离未访问节点。