2011-04-29 09:37 −今天刚掌握Kruskal算法,写下随笔。 对于稀疏图来说,用Kruskal写最小生成树效率更好,加上并查集,可对其进行优化。 Kruskal算法的步骤: 1.对所有边进行从小到大的排序。 2.每次选一条边(最小的边),如果如果形成环,就不加入(u,v)中,否则加入。那么加入的(u,v)一定是最佳的。 ... ...
最小生成树(Kruskal算法并查集优化)学习总结 //在学习最小生成树时,我刚接触的是并不是Kruskal算法,而是prim算法,prim算法的代码将在以后的随笔中给出。//我的第一个并查集的程序就是最小生成树Kruskal算法,我个人觉得并查集是个好东西下面就是我给出的题目描述和代码。//[题目描述]//输入n,m,n代表村子的数目...
Kruskal算法(并查集+Qsort优化) program busy_city;{Kruskal} const maxn=300; maxm=maxn*maxn; type edge=record v1,v2,cost:integer; end; arr=array[1..maxn]of integer; edges=array[1..maxm]of edge; var p:edges; n,m,ans:integer; function find(father:arr; v:integer):...
由于Kruksal算法是对边进行操作,先取出边,然后判断边的两个节点,这样的话,如果一个图结构非常的稠密,那么Kruksal算法就比较慢了,而Prim算法只是对节点进行遍历,并使用set进行标记,因此会相对于Kruksal算法,在稠密图方面好很多。因此Kruksal算法常用于稀疏图,而Prim算法常用于稠密图。