摘要: Dijkstra算法是对非负边权特攻的最短路算法,既然是非负边权,那么在还没有确定最短路的点中和原点距离最近的点一定是这个点最短路,因为其他点的距离更远,不可能通过绕圈来更新它,那么每次用这类点来更新这类点的邻点即可 时间复杂度我看到很多不一样的,有点混,我认为所有边都能遍历一次,要定n轮,每轮找n 阅读全文
posted @ 2023-05-23 23:20 eternal_visionary 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Bellman-Ford算法的一个问题是,每一轮都会遍历所有的边,其中很多边都是不可能被更新的,显然只有在一轮中被更新过的边才有可能使它的相邻边更新,由这个原则,我们可以用队列存入更新过的边的点,每次对它的临边进行松弛操作 时间复杂度O(km~nm),k是每个点平均进队次数,在稀疏图中比较小,但在稠 阅读全文
posted @ 2023-05-23 23:06 eternal_visionary 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 单源最短路,顾名思义,就是从一个起点到其余点的最短距离 Bellman-Ford算法的思路是进行至多n-1轮的更新,每次遍历所有的边,进行松弛操作d[v]=min(d[v],d[u]+w); 之所以至多n-1轮,是因为每次松弛操作实际上是对相邻节点的访问,第n次松弛操作保证了所有深度为n的路径最短, 阅读全文
posted @ 2023-05-23 11:40 eternal_visionary 阅读(19) 评论(0) 推荐(0) 编辑