数据结构

位置:IT落伍者 >> 数据结构 >> 浏览文章

数据结构之最小生成树


发布日期:2022年08月27日
 
数据结构之最小生成树

最小生成树的概念和应用背景

最小生成树(Minimum Spanning Tree)各边权的总和最小的生成树

MST性质

假设N=(VE)是一个连通网U是顶点集V的一个非空子集若(UV)是一条具有最小权值的边其中u∈Uv∈VU则必存在一棵包含边(UV)的最小生成树

构造最小生成树的常用算法

普里姆(Prim)算法

基本思想设G=(VE)是连通网顶点集V={vvvn}T=(UTE)是欲构造的最小生成树任选V中一顶点(不妨为v初始化U={v}TE=Φ重复下列操作在所有u∈U中v∈VU的边(uv)∈E中选择一条权值最小的边(uv)并入TE同时将v并入U直到U=V为止这时产生的TE中具有n条边则上述过程求得的T=(UTE)是G的一棵最小生成树

普里姆算法的时间复杂度为O(n)与图中边数无关该算法适合于稠密图

克鲁斯卡尔(Kruskal)算法

基本思想设T是无向连通网G的最小生成树E(T)是其边集则令最小生成树的初始状态为n个顶点而无边的非连通图即E(T)为空集图中每个顶点自成一个连通分量在E中选择权值最小的边若该边依附的顶点落在T中不同的连通分量上则将此边加入到T中否则捨去此边而选择下一条权值最小的边依次类推直至T中所有顶点都在同一连通分量上为止(此时已选中n条边)

克鲁斯卡尔算法的时间复杂度为O(elge)时间主要取决于边数较适合于稀疏图

上一篇:数据结构 5.3 串的模式匹配的简单算法

下一篇:全国2013年10月高等教育自学考试数据结构导论试题