Kruskal 模板

  • 时间复杂度 O(ElogE)
int Kruskal(int n, int m){  
    int nEdge = 0, res = 0;  
    //将边按照权值从小到大排序  
    qsort(a, n, sizeof(a[0]), cmp);  
    for(int i = 0; i < n && nEdge != m - 1; i++){  
        //判断当前这条边的两个端点是否属于同一棵树  
        if(find(a[i].a) != find(a[i].b)){  
            unite(a[i].a, a[i].b);  
            res += a[i].price;  
            nEdge++;  
        }  
    }  
    //如果加入边的数量小于m - 1,则表明该无向图不连通,等价于不存在最小生成树  
    if(nEdge < m-1) res = -1;  
    return res;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 算法复杂度 时间复杂度 空间复杂度 什么是时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗...
    KODIE阅读 8,568评论 0 9
  • 《机械制图》10%(50+30=80) 单项选择题 Q-B1-E-001 L 基本幅面不能满足需要而采用加长幅面时...
    开源时代阅读 9,700评论 1 1
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,482评论 23 625
  • 残灯下 你曾把朱字写于青藤纸上 雕刻着时光 冰心对绿漪 字字是你的信仰 烛台前我也曾陪你苦练青词到天亮 青词诉衷肠...
    许你一世诺言阅读 3,169评论 2 2
  • 呵呵呵……你应该还是不够了解我的,我总会是一个说得到而又做不到的懒惰女虫。一回到家,我就把刚刚所有的庆祝计划全都抛...
    祺艺果阅读 1,846评论 0 0

友情链接更多精彩内容