2万+  知识点  标题检索     全文检索
       图的最小生成树
        一棵生成树的代价即树上各边的代价之和,如果该生成树的代价最小,则称该树为最小生成树(也称最小代价生成树)。
        求图的最小生成树有着广泛的应用价值。例如,如何在n个城市之间建立通信联络网,并且连通n个城市只需要n-1条线路,而且通信代价最少。
        构造最小生成树的算法主要有Prim(普里姆)算法和Kruskal(克鲁斯卡尔)算法两种。
        1)Prim算法
        Prim算法用于求无向图的最小生成树。N=(V,E)是连通网,V={V1, V2, …, Vn}是网的顶点集合,E是N上最小生成树中边的集合。引入顶点集合U和边的集合TE,U的初始状态为{V1},它存放的是当前所得到的(还未完成的)最小代价生成树上的所有顶点,TE的初始状态为Ф。在Prim算法的每一步,都从所有的边{(u,v)|v∈V-U, u∈U}中找出所有代价最小的边(u,v),同时将v并入U,(u,v)并入集合TE,直到U=V为止。此时TE中必有n-1条边,则T=(V,TE)为N的最小生成树。
        Prim算法的时间复杂度为O(n2)。它适合稠密图。
        2)Kruskal算法
        Kruskal算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法。若G=(V, E)是一个连通的无向图,其中V={1,2,…,n},引入辅助集合T,来存放当前所形成的最小生成树的所有边,其初始状态为空,则Kruskal算法是逐步给T添加不与T中的边构成回路的当前最小代价边。具体步骤如下。
        (1)初始化T=Ф。
        (2)当T的边小于n-1时,做如下工作。
        (3)从E中选取代价最小的边(v,u)并删除。
        (4)若(v,u)不和T中的边一起构成回路,则将边(v,u)并入T中。
        (5)循环执行步骤(2)~(4),直到T中的所有顶点都在同一个连通图上且包含n-1条边为止。
        若带权连通无向图G有e条边,则用Kruskal算法构造最小生成树的时间复杂度为O(elog2e)。它适用于稀疏图。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2019 All Rights Reserved 软考在线版权所有