Algorithm 在图G中找到最大权重边?
我的任务是,给定图G中与E道路相连的V个村庄,每条道路都标有正数。你必须至少达到这个数字才能进入这条路。换句话说,如果道路标记为5,则您的标高必须至少为5或更高才能进入该道路。现在,我的任务是设计annalgorith,找到能够从任何其他村庄到达V中任何村庄所需的最低净空水平。所以,我的解释是我们可以在图中找到最大权重边。但我还没有弄清楚什么算法适合这种情况 这可以在Algorithm 在图G中找到最大权重边?,algorithm,graph,Algorithm,Graph,我的任务是,给定图G中与E道路相连的V个村庄,每条道路都标有正数。你必须至少达到这个数字才能进入这条路。换句话说,如果道路标记为5,则您的标高必须至少为5或更高才能进入该道路。现在,我的任务是设计annalgorith,找到能够从任何其他村庄到达V中任何村庄所需的最低净空水平。所以,我的解释是我们可以在图中找到最大权重边。但我还没有弄清楚什么算法适合这种情况 这可以在O(E)中解决 为什么你的解决方案是错误的?考虑一个三角形,其中两个边是1,最后一个是2,需要的最小间隙是1,你的解是2。 我能想
O(E)
中解决
为什么你的解决方案是错误的?考虑一个三角形,其中两个边是1,最后一个是2,需要的最小间隙是1,你的解是2。
我能想到的解决方案是创建(MBST),而不是获取它的最大边缘,这将是您的清除级别
为什么它会起作用?这棵树的最大边是你能得到的最小的(最小瓶颈),并且仍然可以到达图中的任何地方(跨越)
MBST
可以使用分而治之的方法,而不是遍历树中的所有边来查找最大值isO(E)
。总共O(E)
你可以用一个简单的方法来解决它,因为任何
MST
都是MBST
(),但这需要O(E log V)
或O(E+V log V)
,这取决于算法(or)。@mangusta如果图有顶点a、B、C和边(AB、1)、(BC、1)和(AC、1.5),那么1级可以使用边(AB)和(BC)到处移动,但是从A到C的最短路径的最大权重为1.5。@conditionalMethod,感谢您指出这一点!你说得对,你可以把边从最小的重量排序到最大的重量。从图的顶点集开始,没有边。开始按上一顺序将边添加到图形中。当图形未连接或边用完时,继续添加边。添加的最后一条边的权重为您提供了解决方案。用于测试连通性:添加第一条边时,请标记它连接的两个顶点。添加新边时,标记使用新边可以到达的任何新顶点。只要有未标记的顶点,图形就仍然没有连接。这基本上就是Kruskal的最小生成树算法的工作方式)简单地说,我们需要为您的响应选择最小生成树的最大边,但是为什么要提到使用MBST而不是MST(因为每个MST都必须是MBST),这样会更快?我更喜欢其中一个命令,它说我们可以使用Kruskal的算法在图中找到MST。因为我的讲座刚刚介绍了Kruskal算法和分治方法。@D.dream是的,它只是更快,问问你的教授你需要达到的时间复杂度是多少。当我在大学里做Algo1时,我们的家庭作业中有这个,这是我的答案。@D.dream我编辑了它,如果你对答案满意,如果你能批准,我将不胜感激。