【发布时间】:2018-11-17 17:16:10
【问题描述】:
我目前正在使用 Bellman Ford 算法来查找具有负值的最短路径。在寻找负值的最短路径方面,有没有比 Bellman Ford 更快的算法?
【问题讨论】:
-
我只能给你关于那件事的维基百科文章:en.wikipedia.org/wiki/… 当然,这也需要速度咆哮:ericlippert.com/2012/12/17/performance-rant 并警告:“调试某些东西是编写它的两倍难首先。所以如果你写了一些你最擅长的东西,你将永远无法调试它。”
-
当您提到 Bellman Ford 并要求更快的解决方案时,您当前的运行时间是多少以及您期望更快的时间
-
@maytham-ɯɐɥʇʎɐɯ 我有一个包含 50 多个顶点的图,每个顶点都有一条边。我所说的更快的意思也是,例如,如果有一种算法可以以不同的方式处理所有这些,从而缩短时间
-
@Nicholas:对于随机生成的具有 50 个顶点权重的随机生成的完全连接的有向图,我的答案中的代码在非退化情况下使用解释 python 大约需要 1-2 毫秒,在退化情况下大约需要 50 毫秒(负和循环)。同一张图上的朴素解决方案的时间约为 50 毫秒。我希望本机代码实现速度快 50-100 倍...