【问题标题】:how to write MST algorithium in JAVA?如何在JAVA中编写MST算法?
【发布时间】:2012-03-14 07:44:26
【问题描述】:

JAVA 中的 MST 算法有问题?

我正在尝试在 java 中为 MST 编写代码

这里,图表已经给出并且 我正在尝试编写 addCheapest 方法来添加节点(不在路径上),当添加到路径中时,在某个位置,最小化路径中所有节点和可以添加的所有位置的路径成本;将其添加到该位置。

private void addCheapest(List<String> path)

Here's what I wrote so far....


private void addCheapest(List<String> path){


g.getAllEdges();


int minEdge = Integer.MAX_VALUE;

int edgeValue = g.getEdgeValue(edge);

for (Edge e : g.getAllEdges())
  {
      if ( edgeValue < minEdge)
          g.getAllEdges() = minEdge;
  }

  while ( g != null)
  {
      g.removeNode(nodeName);
      for ( int i = 0; i < path.size(); i ++)
      {
          if (!path.contains(nodeName))
              path.add(nodeName);
      }
  }

}*

【问题讨论】:

  • 考虑改进您的问题:像“它不起作用”这样的陈述对于无权访问您的代码的人来说毫无意义。其他人可以运行的一个小型工作示例将大大提高获得帮助的机会。解释这个小例子的输出是什么,更重要的是,它与预期/期望的输出有何不同。
  • 你应该添加一些cmets..我真的不知道你想用一些语句做什么......

标签: java kruskals-algorithm prims-algorithm


【解决方案1】:

如果不深入研究这个问题和图算法的理论,这是行不通的:

int minEdge = Integer.MIN_VALUE; 然后if ( edgeValue &lt; minEdge)

因为minEdge 已经尽可能小了。您应该将minEdge 改为Integer.MAX_VALUE

【讨论】:

  • 谢谢!那是输入错误,我想否则它愚蠢地试图找到小于最小整数值的值。我需要帮助以在最便宜的路径中添加边缘值。
猜你喜欢
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多