在边缘权重为2,3或5的图形上修改广度优先搜索

时间:2013-12-01 21:47:02

标签: algorithm graph breadth-first-search

  

假设给出了有向图H =(V,E)。对于每个边e,边的权重w(e)为2,3或5.修改BFS,使其计算单个源顶点s的最短路径的长度。解释为什么你的算法是正确的并确定它的最坏情况运行时间(你可以假设H通过邻接列表表示)。

你会怎么做?什么使特定的重量边缘不同于任何?

1 个答案:

答案 0 :(得分:1)

您可以考虑边缘之间的虚节点。因此,如果2个节点之间存在长度为2的边。您创建一个中间节点并在它们之间添加长度为1的边。然后使用普通广度优先搜索。 (您还需要为长度为3和5的节点执行此操作,添加2和4个节点)。由于您只添加O(E)节点,因此具有相同的复杂性。