问答详情
源自:4-3 图的编码实战-最小生成树之普利姆算法(三)

我觉得是不是一个for循环就可以找到最小边了啊?

private int getMinEdge(List<Edge> edgeLst) {

int minWeight = 0;

int edgeIndex = -1; 

int i = 0; 

for (; i < edgeLst.size(); i++) {

if(!edgeLst.get(i).isSelected())

{

if(minWeight > edgeLst.get(i).getWeightValue())

{

minWeight = edgeLst.get(i).getWeightValue();

edgeIndex = i;

}

}

}

return edgeIndex;

}



提问者:qq_啪啦噼里_0 2017-11-15 00:28

个回答

  • yasinSun
    2017-11-22 20:39:20

       不行的,你给minWeight初值是0,想象一下,如果所有权值都大于0的话,if(minWeight > edgeLst.get(i).getWeightValue())里面的东西都不会执行哦。如果你要求最小值,你应该给minWeight一个很大的值,当然这也是不严谨的,严谨的做法就是像老师写的那样