不行的,你给minWeight初值是0,想象一下,如果所有权值都大于0的话,if(minWeight > edgeLst.get(i).getWeightValue())里面的东西都不会执行哦。如果你要求最小值,你应该给minWeight一个很大的值,当然这也是不严谨的,严谨的做法就是像老师写的那样
是有错的,这个算法。因为第一个for循环找出的是最后一条没有被选择的边,但是该边的大小如何是未知的,本来无所谓的。但是第二个for循环的i起始是上一次的i。假如,最短的边在i前,就无法选出正确的边。解决办法也很简单,就是用冒泡法,比较所有的没被选择的边,选出最小的就行