作者回复: 回答思路很清晰,封面要感谢编辑帮忙 :)
作者回复: 你的建议很好,我后面会注意用更形象的方式来讲解。
至于边的权重,至少在目前的Dijkstra算法中,权重必须是正的。因为只有正的,我们才可以不去考虑已经进入F集合的结点。这个在证明过程中也提到了为什么。
一般地图搜索还是用Dijkstra偏多,当然也有一些优化的算法。
最后,我在后面两大模块讲解时,也会使用工作中实际的案例,加强学习的体验。
作者回复: 如果全都是负数也是可以的,只要保证单调性。如果同时有正有负就不行了,无法保证单调性,没法按照Dijkstra算法的方式进行优化。
作者回复: Dijkstra是贪心,还是动态规划,确实有些不同意见。我个人觉得Dijkstra不算是贪心,因为贪心算法往往无法得到最优解,胜在简单和效率。而Dijkstra是可以找到最优的。我觉得Dijkstra更接近动态规划
作者回复: 首先,两道思考题回答得很棒,思路都是正确的。
然后,关于你说的推导问题,我又看了看原文的图,边是有向的,不过是从d到c,而不是从c到d。如果从c到d,那么就如你所说的那样。
作者回复: 如果有负数是不能直接相加的
作者回复: 很细致的点👍
作者回复: 没错
作者回复: 很高兴这个专栏对你有用
作者回复: 细节注意的很好,点赞👍
作者回复: 我理解你说的递归分治是深度优先搜索?如果是这样,也是可以的,但是某个结点会被访问多次,效率不高。另外,当前结点的最小距离还是要缓存的,因为最终需要知道起始点到某个结点的最小距离