zoukankan      html  css  js  c++  java
  • MST的prim算法


    int prim(int n)
    {
        int lowcost[maxn];    //记录集合外的点到集合内的距离
        bool s[maxn];          //记录是否包含在集合中

        for(int i=1;i<=n;i++)
        {
            lowcost=c[1];
            s=false;
        }
        s[1]=true;                     //初始化

        int sum=0;
        for(int i=2;i<=n;i++)    //逐个找连接森林的最短边加入
        {
            int minn=INF;
            int u=-1;
            for(int j=1;j<=n;j++)   //找最短边
            {
                if(!s[j]&&lowcost[j]<minn)
                {
                    u=j;
                    minn=lowcost[j];
                }
            }
     
           if(u==-1)  return INF;//两个森林不联通
     
            sum+=minn;  s=true;

            for(int j=1;j<=n;j++)    //更新外围的距离
            {
                if(!s[j]&&c[j]<lowcost[j])
                {
                    lowcost[j]=c[j];
                }
            }
        }

        return sum;
    }


  • 相关阅读:
    Linux
    CUDA开发
    Linux C++
    Python
    C++
    模式识别
    Linux
    算法
    算法
    leetcode 数组,链表,跳表
  • 原文地址:https://www.cnblogs.com/CKboss/p/3350961.html
Copyright © 2011-2022 走看看