最小生成树之Kruskal算法

原创 2015年07月10日 22:14:16
struct Edge
{
  int u;
  int v;
  int w;
}edge[n];
bool cmp(Edge a,Edge b) //间接排序函数
{
  return a.w<b.w;
}
int find(int x)
{
  return p[x]==x?x:p[x]=find(p[x]);
}
int kruskal()
{
    for(int i=0;i<m;i++)
   {
     p[i]=i;  //初始化并查集
   }
    sort(edge,edge+n,cmp); //给边进行排序
    int sum=0,ans=0;
    for(int i=0;i<n;i++) //n为已知的总边数
    {
      int x=find(edge[i].u);
      int y=find(edge[i].v);
      if(x!=y)   //如果不在同一个集合里,则合并
      {
        ans+=edge[i].w;
        p[x]=y;
        sum++;
      }
      if(sum==m-1)
      return ans;
    }
}


最小生成树的kruskal算法

Kruskal算法思想 不同于Prim算法,Kruskal算法是一种按照连通网中边的权值的递增顺序构造最小生成树的算法。假设G=(V,E)是一个具有n个顶点的连通网,T=(U,TE)是G的最小生成...
  • luojinping
  • luojinping
  • 2011年12月06日 09:33
  • 3408

数据结构:最小生成树--Kruskal算法

Kruskal算法 求解最小生成树的另一种常见算法是Kruskal算法,它比Prim算法更直观。从直观上看,Kruskal算法的做法是:每次都从剩余边中选取权值最小的,当然,这条边不能使已有...
  • zhangxiangDavaid
  • zhangxiangDavaid
  • 2014年08月07日 11:45
  • 5131

最小生成树 kruskal算法 C++实现

#include #include #include #define Inf 0x7fffffff using namespace std; struct node { int u,v;...
  • gl486546
  • gl486546
  • 2017年08月22日 21:46
  • 324

Matlab实现Kruskal最小生成树算法

% Kruskal.m % Kruskal算法求最小生成树 clc;clear; a(1,2)=50; a(1,3)=60; a(2,4)=65; a(2,5)=40; a(3,4)=52;a...
  • lzcnb
  • lzcnb
  • 2016年03月20日 11:09
  • 2316

最小生成树Kruskal算法朴素版 C语言实现

最小生成树Kruskal算法朴素版 C语言实现
  • sunshineacm
  • sunshineacm
  • 2017年12月11日 22:15
  • 106

最小生成树 kruskal算法+时间复杂度

Kruskal算法与Prime算法的区别就在于一个是以边为目标进行考虑,一个以点为目标进行考虑。 由于Kruskal算法以边进行考虑,就涉及到边可能属于两个连通块,这时候就涉及到连通块的判断查找合...
  • liuxingwan
  • liuxingwan
  • 2016年10月08日 17:34
  • 2866

Kruskal算法求最小生成树

求加权连通图的最小生成树的算法。kruskal算法总共选择n- 1条边,(共n条边)所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若...
  • a197p
  • a197p
  • 2015年05月27日 13:50
  • 1131

Kruskal算法求图的最小生成树的完整C代码

求加权连通图的最小生成树的算法。kruskal算法总共选择n- 1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能...
  • u014488381
  • u014488381
  • 2014年11月24日 16:41
  • 8337

最小生成树 Kruskal算法

并查集的应用 ,Kruskal,最小生成树算法。 求加权连通图的最小生成树的算法。kruskal算法总共选择n- 1条边,(共n个点); 每次从剩下的边中选择一条不会产生环路的具有最小耗费(最小权值...
  • chaiwenjun000
  • chaiwenjun000
  • 2015年08月11日 07:16
  • 680

最小生成树问题中Kruskal算法和Prim算法的C语言实现

最小生成树问题中 Kruskal算法 和 Prim算法 的C语言实现
  • mosquitolxw
  • mosquitolxw
  • 2010年12月04日 10:13
  • 4338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最小生成树之Kruskal算法
举报原因:
原因补充:

(最多只允许输入30个字)