首页 > 其他分享 >二十五、最小生成树

二十五、最小生成树

时间:2022-11-15 22:58:33浏览次数:46  
标签:Prim 最小 生成 算法 二十五 顶点 树是

一、最小生成树及其性质

最小生成树(Minimum (Cost) Spanning Tree)是在一个给定的无向图 $G(V,E)$ 中求一棵树 $T$,使得这棵树拥有图 $G$ 中的所有顶点,且所有边都是来自图G中的边,并且满足整棵树的边权之和最小。

离散数学上的定义为:连通加权图里的最小生成树是具有边的权之和最小的生成树。

最小生成树有三个性质需要掌握:

  1. 最小生成树是树,因此其边数等于顶点数减1,且树内一定不会有环。
  2. 对给定的图 $G(V,E)$ ,其最小生成树可以不唯一,但其边权之和一定是唯一的
  3. 由于最小生成树是在无向图上生成的,因此其根节点可以是这棵树上的任意一个结点。

 

二、最小生成树算法

1.普林(Prim)算法

考试不考具体算法,在这里给出伪代码,展示思路

procedure Prim(G:带n个顶点的连通加权无向图)
T:=权最小的边
for i:=1 to n-2
	e:=与T里顶点关联且若添加到T里则不形成简单回路的权最小的边
	T:=添加e之后的T
return T{T是G的最小生成树}

//G为图,一般设成全局变量;数组d为顶点与集合S的最短距离
Prim( G, d[] )
{
	初始化;
	for( 循环n次 )
	{
		u = 使d[u]最小的还未被访问的顶点的标号;
		记u已被访问;
		for( 从u出发能到达的所有顶点v )
		{
			if( v未被访问 && 以u为中介点使得v与集合S的最短路径d[v]更优 )
			{
				将G[u][v]赋值给v与集合S的最短距离d[v];
			}
		}
	}
}

 

动图演示:

非动图演示:

标签:Prim,最小,生成,算法,二十五,顶点,树是
From: https://www.cnblogs.com/haibersut/p/16894325.html

相关文章

  • 黑马出品代码生成器,超级好用,推荐
    非常好用的代码生成器,最新版,传智播客出品,支持多种代码模板生成,包括前端页面,csdn首发.支持springboot+springdatajpa微服务;ssh+angularjs+bootstrap;ssh+easyui;ssm+du......
  • idea中serialVersionUID怎么自动生成
    首先我看了一些博客说要下载插件,我去插件里没有找到,后来是直接设置的点击file->setting点击Inspection在搜索框里输入seria就会看到Serializableclasswithout'seri......
  • Lambda里时间排序,日期最大、最小值
    Java中通过Lambda进行时间排序,获取日期最大最小值的方法一、使用Lambda根据对象中的时间进行排序//从小到大->升序排列List<HistoryInfo>historyInfoList=history......
  • java生成一定12位递增的流水号
    项目需求中有时需要生成一定规则递增编号。例如系统中唯一订单号组成规则可能是:机构代码+时间+12位编号。例如:000000120221115000000000001/000000120221115000000000002之......
  • 【Java】生成随机字符串
    packagecom.runsky.utils;importjava.util.Random;publicclassGetRandom{privatestaticfinalString[]GENERATE_SOURCE=newString[]{"0","1","2",......
  • 最大公约数、最小公倍数的求解
    1#include<stdio.h>2intmain()3{4intr,m,n;5printf("请输入m,n(用逗号间隔):");6scanf("%d,%d",&m,&n);7r=m%n;8while(r!......
  • 【快应用】画布生成图片分辨率计算
    ​【现象描述】使用toTempFilePath()把当前画布指定区域的内容导出生成指定大小的图片,最终保存到手机上的分辨率和设置的destWidth(输出的图片的宽度)、destHeight(输出的图......
  • postgresql数据库生成GUID
    CREATEorREPLACEFUNCTIONnew_guid()RETURNS"pg_catalog"."varchar"AS$BODY$DECLAREv_seed_valuevarchar(32);BEGINselectmd5(inet_client......
  • 决策树的生成
    一、基本流程首先,什么是决策树。分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部结点和叶节点。内部结点表示一个特......
  • 319场周赛 逐层排序二叉树需要的最小操作数目
    319场周赛逐层排序二叉树所需的最小操作数目给你一个值互不相同的二叉树的根节点root。在一步操作中,你可以选择同一层上任意两个节点,交换这两个节点的值。返回每......