-----------最小生成树----------------

最小生成树(Minimum Spanning Tree)

  1:是一棵树(是一种特殊的图)

      连通的,没有回路 有V 个顶点 一定有 V-1条边

     2:生成树

      包含了全部的顶点,所有的V-1条边  都在图里

剩下的三个土  都是第一个完全图的生成树

只要是 4个顶点 3条边   没有回路 就是生成树     这3个图 随便的加一条边  都会变成一个回路   也就不是 最小生成树了.   

  3:最小  

        边的权重之和最小

最小生成树存在  和   图连同  是充分必要条件

 ---------------------------------------------------------------------------------------------------------------------------

不论什么方法解决最小生成树问题都离不开 贪心算法

什么是贪 : 每一步都要最好的 .

什么是好 : 权重最小的边 . 

需要约束:                         

只能用图里面的边.

只能刚好用掉V-1条边

不能有回路

贪心算法之一

Prim算法-让一颗小树长大

 用Dijkstra算法和Prim算法比较一下感觉几乎一样

Prime算法  生成树的顺序是V1,V4,V2,V3,V7,V6,V5,

//                       Dijkstra算法
/*
依鄙人之见,Dijkstra算法 就是走一个一定最小的步子,走完之后丈量一下去下一个地方需要多少步然后 给那个地方打上标签 这时候 可能会出现 A->B 为80 但是 A->C->B 为 5的情况 所以 在走完第一步之后 在第一部的基础上丈量完 然后走 离现在距离最近的点这个点 该点一定没有 A 离源点近 但是改点是距离 A最近的 就这样 逐步求最小 不停的修改 */ void Dijkstra( Vertex s ) // 看来 再看一遍 写笔记 很重要 { while (1) {V = 未收录顶点中dist 最小者;if ( 这样的V在 不存在 )break;collected[V] = true;for ( V 点 的每个邻接点 W )if ( collected[W] == false )if ( dist[V]+E <V,W> < dist[W] ){dist[W] = dist[V] + E <V,W> ;path[W] = V;}} }

 

//                    Prim算法

void
Prim() {MST=(s);while(1){V=未收录顶点中dist最小者 // 和源点相邻的就是权重 . 剩下的是正无穷.if(都被收录了)break;dist[V]=0;//将V收录进MST for(V的 每个临接点W){if(dist[W]!=0) //没有被收录 的话 {if(E(v,w)<dist[W]){dist[W]=E(v,w);parent[W]=V;}}}}if(MST中的顶点不到V个) //就是 有独立的点 不连通的图. ERRor(生成树不存在) }

 

----------------图比较稀疏---------------- 

//                    Kruskal算法
//这个算法的核心就是    贪心了      将每一条边 一个一个的收录进去 (不能有回路)(变得个数是点的个数-1)void
void Kruskal(Graph G)
{MST={};   //生成一个空树while(MST中不到V-1条边&&E中还有边){从E中取一条权重最小的边E(v,w);  //用最小堆
        将E(v,w)从E中删除;if(E(v,w)不再MST中构成回路)   //  用并查集
            将E(v,w)加入MTS;else彻底无视E(v,w);}if(MST中不到V-1条边)Error("生成树不存在");
}

 

转载于:https://www.cnblogs.com/A-FM/p/5153775.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery Easing 使用方法及其图解

从jQuery API 文档中可以知道&#xff0c;jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数&#xff1a; properties&#xff1a;一组包含作为动画属性和终值的样式属性和及其值的集合duration(可选)&#xff1a;动画执行时间&am…

可以进行单元测试么_前端与单元测试

先来几个专业词汇&#xff0c;这样显得高大上一点&#xff08;不存在的。&#xff09;BDD: Behavior-Driven Development (行为驱动开发)TDD: Test-Driven Development (测试驱动开发)ATDD: Acceptance Test Driven Development(验收测试驱动开发)好&#xff0c;说完了&#xf…

UWP--页面传值

//匿名对象private void Button1_OnClick(object sender, RoutedEventArgs e){this.Frame.Navigate(typeof(PageNavigate2), new { id 1, name "LBI" });}//利用反射获取protected override void OnNavigatedTo(NavigationEventArgs e){var parameter e.Parameter…

Android 4.4 KitKat, the browser and the Chrome WebView

Having V8 as the JavaScript engine for the new web view, the JavaScript performance if much better, besides general performance on CSS thanks to hardware acceleration Android 4.4 KitKat, the browser and the Chrome WebView转载于:https://www.cnblogs.com/dais…

excel 行高 上下留白_拒绝加班,工作中最常用的57个Excel小技巧来了!

今天高顿君分享的 Excel小技巧&#xff0c;全是工作是最常用且简单易操作的&#xff0c;共57个&#xff0c;希望对同学们有所帮助。&#xff08;适合版本 Excel2007及以上&#xff09;一、文件操作1、为excel文件添加打开密码文件 - 信息 - 保护工作簿 - 用密码进行加密。2、为…

经验分享:三步走教你升级企业NAS设备

前几年凡是对于数据存储有需求的企业都已经购买了相关的NAS产品&#xff0c;不过电脑和网络升级换代是比较频繁的&#xff0c;几年过去了中小企业对数据存储的需求也水涨船高&#xff0c;然而面对当初的NAS存储设备该如何处理呢&#xff1f;扔掉可惜使用又不如意的鸡肋问题能够…

C#索引器

索引器允许类或者结构的实例按照与数组相同的方式进行索引取值&#xff0c;索引器与属性类似&#xff0c;不同的是索引器的访问是带参的。 索引器和数组比较&#xff1a; (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 (3)索引器不是一个变量 索引器和属性的不同点 …

获取访客进站关键词_拼多多访客突然下降是为什么?拼多多访客突然暴涨又是怎么回事?...

在当下这个互联网时代&#xff0c;可以说流量就代表这金钱。这一点在做电商的商家那里表现的就更为直观了&#xff0c;如果你做了一个拼多多的店铺&#xff0c;之前店铺的流量一直都比较好&#xff0c;而现在拼多多店铺的流量忽然下降了&#xff0c;那么店铺中的销售额就会受到…

微信开发之 二维码生成类库

最近weiphp 二次开真的有点累&#xff0c;漏洞百出。代码维护代价有点高。 <?php /*** Created by PhpStorm.* User: bin* Date: 15-1-16* Time: 上午9:48*/ namespace Home\Common;// 微信处理类 set_time_limit(30); class Weixin{//构造方法static $qrcode_url "h…

通过Matlab实现离散序列卷积和

前言 年轻人&#xff0c;你对数学一无所知&#xff0c;你只是习惯了而已。—冯诺伊曼 Young man, in mathematics you dont understand things. You just get used to them.—John von Neumann。 一、卷积和是什么&#xff1f; 卷积的本质是描述一个瞬时动作&#xff08;激励…

Ansible 五(inventory文件 主机清单)

Ansible 五&#xff08;inventory文件 主机清单&#xff09;Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts除默认文件外,你还可以同时使用多个 inventory 文件(后面会讲到),也可以从动态源,或云上…

python series用法_如何使用Python中的Series字典创建数据框?

数据框是一种二维数据结构&#xff0c;其中数据以表格格式存储&#xff0c;以行和列的形式。它可以可视化为SQL数据表或excel工作表表示形式。可以使用以下构造函数创建它-pd.Dataframe(data, index, columns, dtype, copy)让我们了解如何使用Series字典创建数据框。系列是“熊…

[转载]android设置全屏和无标题

先介绍去掉标题栏的方法&#xff1a; 第一种&#xff1a;也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏注意这句一定要写在setContentView()方法的前面&#xff0c;不然会报错的 第二种&#xff1a;在AndroidManifest.xml文…

mac电脑下Tomcat和Apach配置流程(超详细)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 本章介绍在mac 电脑下如何配置Tomcat、Apach等环境 一、Apache介绍及配置 1.XAMPP安装 为了更好的进行各项软件服务的配置&#xff0c;引入快捷脚本工具——XMAPP。…

MVC 分页

后台代码: using Webdiyer.WebControls.Mvc; 1 public ActionResult Index(int id 1)2 {3 int pageIndex id;4 int count;5 int pageSize 7;6 7 List<News> newsList 8 newsSer.QueryByPage…

cvc 降噪_耳机降噪功能这么多,说说什么是ANC、ENC、CVC、DSP降噪

降噪功能对耳机的作用很重要&#xff0c;一是减少噪音&#xff0c;避免过度放大音量&#xff0c;从而减少对耳朵的损害。二是过滤噪音从而提高音质和通话质量。降噪可分为被动式降噪和主动式降噪。被动式降噪也就是物理降噪&#xff0c;被动式降噪是指利用物理特性将外部噪声与…

RPC 和 RESTful

2019独角兽企业重金招聘Python工程师标准>>> to do ... 转载于:https://my.oschina.net/u/2002769/blog/1505410

[linx] ubuntu网络重启命令

/etc/init.d/networking restart #这种方式必须有/etc/network/interface文件 ifconfig eth0 down #直接重启网卡 ifconfig eth0 up 转载于:https://www.cnblogs.com/fantasy01/p/4229734.html

密码学入门1——凯撒密码和三重DES加解密

实验目的 1、完成第一个入门加解密——凯撒密码 2、完成当下较为流行的三重DES加解密技术 3、熟悉所学的实际运用方向 实验准备 硬件&#xff1a;计算机或笔记本电脑 操作系统&#xff1a;Mac操作系统 IDE环境&#xff1a;Eclipse 程序语言&#xff1a;Java 一、实验基本…

老李谈JVM内存模型

老李谈JVM内存模型 poptest是国内唯一一家培养测试开发工程师的培训机构&#xff0c;以学员能胜任自动化测试&#xff0c;性能测试&#xff0c;测试工具开发等工作为目标。如果对课程感兴趣&#xff0c;请大家咨询qq&#xff1a;908821478&#xff0c;咨询电话010-84505200。 J…