Prim算法-最小生成树

简介:

基本思想:

1 置S={1}

2 只要S是V的真子集就做如下的贪心选择:

  选取满足条件的i ,i属于S,j输入V-S,且c[i][j]最小的边,并将定点j加入S中

  这个过程直到S==V为止。

3 这个过程所选的边,恰好就是最小生成树

算法描述:

复制代码
void Prim(int n,Type * * c)
{
    T = 空集;
    S = {1};
    while(S != V)
    {
        (i,j)=i 属于 S 且 j属于V-S的最小权边;
        T = T∪{(i,j)};
        S = S ∪ {j};
    }
}
复制代码

模版代码:

复制代码
template <class Type>
vodi Prim(int n,Type * * c)
{
    Type lowcost[maxint];
    int closest[maxint];
    bool s[maxint];
    s[1] = true;
    for(int i=2;i<=n;i++)
    {
        lowcost[i] = c[1][i];
        closest[i] = 1;
        s[i] = false;
    }
    for(int i = 1;i<n;i++)
    {
        Type min = inf;
        int j = 1;
        for(int k = 2;k <= n;k++)
            if((lowcost[k]<min) && (!s[k]))
            {
                min = lowcost[k];
                j=k;
            }
        cout<<j<<' '<<closest[j]<<endl;
        s[j] = true;
        for(k = 2;k<= n;k++)
            if((c[j][k]<lowcost[k])&&(!s[k]))
            {
                lowcost[k] = c[j][k];
                closest[k] = j;
            }
    }
}
复制代码
本文转自博客园xingoo的博客,原文链接:Prim算法-最小生成树,如需转载请自行联系原博主。
相关文章
|
2月前
|
机器学习/深度学习 算法 Java
算法设计(动态规划应用实验报告)实现基于贪婪技术思想的Prim算法、Dijkstra算法
这篇文章介绍了基于贪婪技术思想的Prim算法和Dijkstra算法,包括它们的伪代码描述、Java源代码实现、时间效率分析,并展示了算法的测试用例结果,使读者对贪婪技术及其应用有了更深入的理解。
算法设计(动态规划应用实验报告)实现基于贪婪技术思想的Prim算法、Dijkstra算法
|
3月前
|
存储 传感器 算法
|
3月前
|
机器学习/深度学习 人工智能 算法
|
4月前
|
算法 Java
Java数据结构与算法:贪心算法之最小生成树
Java数据结构与算法:贪心算法之最小生成树
|
4月前
|
算法 C语言
数据结构与算法——最小生成树问题(什么是最小生成树、Prim算法、Kruskal算法)
数据结构与算法——最小生成树问题(什么是最小生成树、Prim算法、Kruskal算法)
28 0
|
5月前
|
存储 机器学习/深度学习 算法
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
44 1
|
5月前
|
人工智能 算法
一些算法的复习(最短路径、最小生成树、dp)
一些算法的复习(最短路径、最小生成树、dp)
|
5月前
|
算法
最小生成树算法
最小生成树算法
|
5月前
|
算法 Java C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-6 算法训练 安慰奶牛 最小生成树
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-6 算法训练 安慰奶牛 最小生成树
39 0
|
2天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
下一篇
无影云桌面