我有加权无向图。我需要以尽可能小的成本找到生成树,以便 A 点和 B 点之间的距离尽可能低。例如,我有这个图:graph。A 和 B 之间的最小距离为 2。最小生成树看起来像这样。但这会使 A 和 B 之间的距离 = 3。
现在我正在这样做:
- 使用 BFS 查找图中 AB 之间的距离。
- 使用 DFS 从步骤 1 中找到 AB 之间的所有路径。
- 从步骤 2 中的每条路径生成生成树。
- 比较它们并获得最小的一个。
一切都很好,直到我得到 AB 距离 = 12 的图表。第二步然后花费太多时间。有没有更快的方法来做到这一点?谢谢。