当前位置: 首页 > 知识库问答 >
问题:

所有边具有相同权重时的Dijkstra算法

司空凌
2023-03-14

如果给定图中所有边的权重相同,Dijkstra的算法还能找到两个顶点之间的最短路径吗?谢谢!

共有2个答案

狄海
2023-03-14

是的,但是你可能想看看广度优先搜索,它解决了你所引用的案例。要查找路径,您可以创建一个递归函数,该函数从标记距离为n的命运节点开始,并移动到标记距离为n-1的邻居节点之一

汤昊
2023-03-14

是的,dijkstra算法可以找到最短路径,即使所有边的权重相同。dijkstra的时间复杂度为O((ve)logV)。相反,您应该选择BFS算法来做同样的事情,因为BFS具有时间复杂度O(ve),所以BFS渐进地比dijkstra快。

 类似资料:
  • 我有一个无向加权图,作为邻接列表实现。有一个hashmap,其中节点对象作为键,边对象列表作为值。这些边对象包含两个节点之间边的权重。 我试图编写一个Dijkstra的最短路径算法;但是我担心我的图结构太复杂,无法理解我能为Dijkstra找到的所有示例/伪代码。有人能提供任何帮助吗?提前感谢。

  • 问题来了。 给出了一个加权无向连通图G。重量是不变的。任务是提出一个算法,该算法将找到满足以下两个条件的生成树的总权重(按优先级排序): 生成树必须具有相同权重的最大边数(实际重复权重值与此无关); 总生成树权重应最小化。这意味着,例如,权重为120的生成树T1最多有4条相同权重的边(这四条边中的每一条的权重都是15)应该优于权重为140的生成树T2,这四条边最多有4条相同权重的边(这四条边中的每

  • 问题内容: 。 我有下表: 我需要用计算所有行。可能与聚合有关吗? 现在,我按如下操作: 问题答案: 如果您只需要对1的行数进行计数,则可以执行以下操作: 如果要计算 每 行的行数,则需要使用:

  • 首先定义Dijkstra算法: Dijkstra的算法在有向图中寻找具有非负边权的单源最短路径。 如果我有源和目的地T,我可以用Dijkstra算法在这两个顶点之间找到一条最短路径,但这里的问题是我想找到这两个顶点之间的最短路径,这两个顶点之间的边数不超过形式k。 第一部分是Dijkstra算法,第二部分是BFS算法,因为我们可以用BFS算法在无权图中找到最短路径。 所以我想知道有没有一种方法,可

  • 假设我们有一个有向图,它同时包含正加权边和负加权边。 我知道最短路径解决方案是Bellman-Ford算法。 我的问题是:为什么我们不能只是在所有的边成本上增加一些大的值N,这样就不再有负边了,然后使用效率高得多的Dijkstra算法?

  • 我有一个有向图,边上的权值是非负的。 我的算法应该做到以下几点: 获取从顶点u到顶点V的所有路径 计算从u到v的每条路径上的最小加权边 计算我从上面计算的最小加权边的最大值。