首页 > 其他分享 >prim求最小生成树

prim求最小生成树

时间:2023-10-01 23:13:35浏览次数:26  
标签:prim kruskal 最小 生成 属于 权值

prim 算法建议在 kruskal 算法及相关证明掌握后进行学习,这里不再赘述。

前置知识

暂无

prim 的算法步骤

  1. 确定一号节点为最小生成树。
  2. 找到一条由已经属于最小生成树的点集连到还不属于最小生成树的点集的边,使得这条边在这类边中权值最小。
    令已经属于最小生成树的点集为 \(S\),还不属于最小生成树的点集为 \(T\),则可以表达为找到两个点 \(x,y\) 使得 \({\min_{x \in T,y \in S}\{z\}}\),\(z\) 即为这条边的权值。
  3. 记两点都已属于最小生成树的点集,累计这条边的权值进入答案。
  4. 重复 2,3 的操作直到所有点都属于最小生成树的集合,输出累加值。

主要实现方法

prim 的实现步骤可以类比 dijkstra,很像
维护数组 \(d\),找到一个点 \(x\),使得 \(x \in T\),且 \(d[x]\) 最小,那么就把 \(x\) 加入 \(S\) 中,并更新所有出边的 \(d[\ ]\) 值,直到所有点都加入了 \(S\) 集合,答案即为 \(\sum_{x=2}^{n}{d[x]}\)。

prim V.S kruskal

prim 时间复杂度 \(O(n^2)\),堆优化后为 \(O(m log n)\)。
kruskal 时间复杂度 \(O(m log m)\)。
kruskal 更适用于稀疏图(即边数较少的图)。
prim 更适用于稠密图,其堆优化后的版本不如kruskal好写。

代码

咕了,什么时候补上再说。

标签:prim,kruskal,最小,生成,属于,权值
From: https://www.cnblogs.com/lemon-cyy/p/17739574.html

相关文章

  • 可迭代、迭代器、生成器
    可迭代可以通过isinstance(object,Itreable)判断也可以通过如下方式判断dir()方法,如果有实现__iter__就说明是可迭代的当然也可能只是闲了__getitem__方法,尝试按顺序获取元素,也不会抛出异常因此,我们可以通过能不能用for去迭代或者使用iter()来尝试生成迭代器来......
  • VCS代码保护+SOC中的复位电路+verdi生成部分原理图+verdi查看delta cycle+自定义的原
    VCS代码保护在新思公司的一些vip的实现中,一些代码进行了加密,导致无法查看源码,加密的方法也是使用新思的工具VCS。在编译的命令行添加+protect选项,在代码前后加上编译指示,则生成对应的加密vp、svp文件,中间的部分被加密。https://blog.csdn.net/woodhorse007/article/details/524......
  • 免费 AI 代码生成器 Amazon CodeWhisperer 初体验
    文章作者:浪里行舟简介随着ChatGPT的到来,不由让很多程序员感到恐慌。虽然我们阻止不了AI时代到来,但是我们可以跟随AI的脚步,近期我发现了一个神仙AI代码生产工具CodeWhisperer,它是一项基于机器学习的服务,其根据自然语言注释和集成开发环境(IDE)中的代码,生成代码建议,帮助......
  • 【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(下)
    一、XML解析对于以XML作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析XML标签和标签值、解析XML属性和属性值、解析XML事件类型和元素深度三类场景。XML模块提供XmlPullParser类对XML文件解析,输入为含有XML文本的ArrayBuffer或DataView,输出为解析得到的信息......
  • 拟合不同的冷却方式(分类变量)下,物料温度加入两个分类变量, 物料类型和冷却方式, 给
    在机器学习中,拟合不同冷却方式下物料温度随时间下降的规律可以使用不同的算法和方法。以下是四种常见的方法,它们可以用来生成数据集、拟合模型、解释参数和输出函数方程,以及解释它们的实际意义。线性回归:方法:线性回归是一种用于拟合线性关系的方法,通过寻找最佳拟合直线来预测温度随......
  • 温度由分类变量和连续变量决定,请用python机器学习三种方法模拟生成数据并拟合
    要模拟生成数据并拟合温度(或任何其他目标变量),通常需要考虑以下步骤:生成特征数据:创建分类变量和连续变量,这些变量将用于预测温度。分类变量可以是例如季节、天气状况(晴天、雨天、多云等),而连续变量可以是例如湿度、风速等。生成目标数据:根据特征数据和某种关系生成目标变量(温度)的数据......
  • GPT生成过程中的Top_p和Top_k
    一、背景GPT生成的代码中,往往有很多需要设置的参数,例如top_p、top_k等。下面介绍一下这些参数意义和提出的原因。二、Top_Ktop_k是一个经典的方法,表示从候选的K个值中选择一个。在GPT生成的过程中也是类似的问题。选取K个tokens,哪些tokens的概率最高。然而Top_K存在一些问题,就......
  • 洛谷题解 | AT_abc321_c Primes on Interval
    目录题目翻译题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2样例#3样例输入#3样例输出#3题目简化题目思路AC代码题目翻译【题目描述】你决定用素数定理来做一个调查.众所周知,素数又被称为质数,其含义就是除了数字一和本身之外不能......
  • 怎么根据excel里面的内容和邮箱地址,生成pdf,并发送给对应邮箱
    Craftedby[Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode)You怎么根据excel里面的内容和邮箱地址,生成pdf,并发送给对应邮箱Genie要根据Excel文件中的内容和邮箱地址生成PDF并发送到相应的邮箱,你可以使用Python编程语言来完成这个任......
  • 简单数学函数(最小公倍数与最大公约数与快速幂)
    最大公约数(\(gcd\)):intgcd(inta,intb){returnb?gcd(b,a%b):a;}最小公倍数(\(lcm\)):intlcm(inta,intb){returna/gcd(a,b)*b;//注意:除数为gcd(a,b)}快速幂:template<typenameA,typenameB,typenameC>Cpow(Ax,By,Cp){ if(x==......