摘要: 克鲁斯卡尔算法的基本思想:考虑问题的出发点: 为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能地小。具体做法: 先构造一个只含 n 个顶点的子图 SG,然后从权值最小的边开始,若它的添加不使SG 中产生回路,则在 SG 上加上这条边,如此重复,直至加上 n-1 条边为止。判断是否产生回路可以用并查集每次用选择权边最小的边可以用优先队列[代码] 阅读全文
posted @ 2008-08-14 16:19 随风逐云 阅读(3486) 评论(2) 推荐(1)
摘要: 并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。它支持以下两种操作:  -merge (Root1, Root2) //并操作;把子集合Root2并入集合Root1中.要求:Root1和 Root2互不相交,否则不执行操作.  -Find (x) //搜索操作;搜索单元素x所在的集合,并返回该集... 阅读全文
posted @ 2008-08-14 15:11 随风逐云 阅读(741) 评论(0) 推荐(0)