最小生成树

来源:互联网 发布:js div上下滑动效果 编辑:程序博客网 时间:2024/06/05 16:29
图论
/*最小生成树算法Prim算法*/for(i=1; i<n; i++){     lowcost[i] = dist[0][i];      adjvex[i] = 0;}lowcost[0] = 0;for(i=1; i<n; i++){     double Min = 1000000000;     for(j=0; j<n; j++)     if(Min > lowcost[j] && lowcost[j] != 0)     {            Min = lowcost[j];            k = j;     }     lowcost[k] = 0;     for(j=1; j<n; j++)     {         if(dist[k][j] < lowcost[j])     {     lowcost[j] = dist[k][j];     adjvex[j] = k;}                                        double res = 0;for(i=1; i<n; i++){    res += dist[i][adjvex[i]];    dist[i][adjvex[i]] = dist[adjvex[i]][i] = 0;}
/*Kruskal算法*/int cmp(const int i,const int j)//间接排序函数; {    return w[i]<w[j];}int find(int x)//找结点; {return p[x]==x?x:p[x]=find(p[x]);} double Kruskal(){       double ans=0;        int i;       for(i=0;i<t;i++)p[i]=i;         for(i=0;i<k;i++)r[i]=i;           sort(r,r+k,cmp);         for(i=0;i<k;i++)         {           int e=r[i]; int x=find(u[e]);int y=find(v[e]);           if(x!=y)           {                 ans+=w[e];p[x]=y;           }        }                 return  ans;}
原创粉丝点击