Prim算法思路

算法步骤:
初始化:向空树T = (VT,ET)中添加图G = (V,E)的任何一个顶点u0,VT = {u0},ET ≠ ∅;
循环(重复直到VT = V):从图G中选择满足{(u,v)|u∈VT,v∈V-U}且具有最小权值的边(u,v),修改VT,ET集合,VT = VT∪{v},ET = ET ∪ {(u,v)};

//Prim算法
void Prim(G,T)
{
    T = NULL; //初始化空树
    U = {w}; //添加任一顶点w
    while((V-U) != 0)//树还没有拿到全部结点
    {
        MinEdge = (u,v);//u是U中结点,v是V-U中结点
        T = T + (u,v); //边加入树
        U = U + v; //点加入树
    }
}

算法的时间复杂度是O(V^2),不依赖边集。

适用场景:边稠密的图。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值