algorithm - Dijkstra 算法和循环

标签 algorithm graph-algorithm dijkstra

一本书上说“Dijkstra 算法只适用于有向无环图”。

只要没有负环,该算法似乎也适用于有环的图。对吗?

编辑 1: 《Grokking 算法》一书 - Aditya Bhargava。 第 7 章第 122 页。

最佳答案

我是 Grokking Algorithms 的作者。对于这个错误,我们深表歉意——Dijkstra 的算法确实适用于具有循环的图,只要它是一个正权重循环。我已经更新了 errata page来反射(reflect)这个错误。 Dijkstra 不适用于负权重循环,这里有一张图片解释了原因:

dijkstra's algorithm with a negative weight cycle

关于algorithm - Dijkstra 算法和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43394847/

相关文章:

algorithm - 插入操作时 AVL 树 : adding a new field to each node : the "size" of its tree ,

algorithm - 为什么 Dijkstra 算法必须在每一轮中提取 min?

c++ - 二维动态物体碰撞最快的算法是O(n^2)吗?

algorithm - 为什么我的数字在 Collat​​z 序列中只停留在 2?

algorithm - 非平面图中是否存在最小生成树?

algorithm - 找到属于图的两个不相交子集的任意两个节点之间的最短路径

algorithm - Dijkstra 算法中堆相对于二叉树的优势

dijkstra - 此 Dijkstra 算法中优先级队列的空间复杂度

python - 我如何测量我的算法在整个运行过程中所花费的时间?

algorithm - 优于 O(log(N)) 以 2 为底的情况