【发布时间】:2013-12-01 21:47:01
【问题描述】:
假设给定一个有向图 H = (V, E)。对于每条边 e,边的权重 w(e) 为 2、3 或 5。修改 BFS,使其计算从单个源顶点 s 开始的最短路径的长度。解释为什么您的算法是正确的并确定其最坏情况的运行时间(您可以假设 H 是通过邻接表表示的)。
你会怎么做呢?是什么让特定的重量边缘与众不同?
【问题讨论】:
-
我已经意识到理想的路径将是任何直接边 (u,v),如果它是 2 或 3,如果它是 5,那么最短路径可能是具有两条边权重的路径2,因此,除非直接边是 2 或 3(并且根本存在),否则我们需要检查起始顶点的邻接列表中的其他路由。我假设我们只是正常应用 BFS,然后在找到所需的另一个顶点后通过跟踪来确定最短路径。但我确信可能有更好的方法来做到这一点,而无需在搜索之外添加额外的行..
-
你熟悉 Dijkstra 算法吗?
-
我至少知道这一点。是的。
标签: algorithm graph breadth-first-search