当前位置: 首页 > news >正文

香港人做evus在哪个网站/网络营销推广计划

香港人做evus在哪个网站,网络营销推广计划,dreamweaver个人网站模板下载,网站代理工具一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。 一.普利姆算法 从…

一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。

一.普利姆算法

从图中任意取出一个顶点,把他当作一棵树,然后从这棵树相接的边中选取一条最短(权值最小)的边,并将这条边及其所连接的顶点也并入这棵树中,此时得到一颗有两个顶点的树。然后在这棵树中相连的顶点中选取最短的边,并将图中的所有顶点并入树中为止,此时得到的树就是最小生成树。
流程如图:

/*普利姆算法*/
void Prim(Graph g, int v0, int &sum) {//任意开始节点v0,得到边的总长度int lowcost[MAX_NUM], vset[MAX_NUM], v;//邻接节点的最短路径,被访问的标记,最后访问的节点标记int i, j, k, min;v = v0;for (int i = 0; i < g.vetexs; ++i) {lowcost[i] = g.arcs[v0][i];vset[i] = 0;}vset[v0] = 1;//将v0并入树中sum = 0;//sum清零用来累计树的权值for (i = 0; i < g.vetexs; ++i) {min = INF;//INF是一个比图中所有边权值都要大的树for (j = 0; j < g.vetexs; ++j) //选出当前生成树到其一顶点最短边中的一条if (vset[j] == 0 && lowcost[j] < min) {min = lowcost[j];k = j;}vset[j] = 1;v = k;sum += min;//记录最小生成树的总权值,也可以换成其他操作/*下面这个循环一刚并入的顶点v为媒介更新候选边*/for (j = 0; j < g.vetexs; ++j)if (vset[j] == 0 && g.arcs[v][j] < lowcost[j])lowcost[j] = g.arcs[v][j];}
}


二.克鲁斯卡算法

基本思想:(1)构造一个只含n个顶点,边集为空的子图。若将图中各个顶点看成一棵树的根节点,则它是一个含有n棵树的森林。(2)从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树,则将其加入子图。也就是说,将这两个顶点分别所在的两棵树合成一棵树;反之,若该条边的两个顶点已落在同一棵树上,则不可取,而应该取下一条权值最小的边再试之(3)依次类推,直至森林中只有一棵树,也即子图中含有 n-1条边为止。

大白话:(1)将图中的所有边都去掉。(2)将边按权值从小到大的顺序添加到图中,保证添加的过程中不会形成环(3)重复上一步直到连接所有顶点,此时就生成了最小生成树。这是一种贪心策略。


typedef struct {int a, b;//a和b是一条边的两个顶点int w;//边的权值
}Road;
Road road[MAX_NUM];
int v[MAX_NUM];//定义并查集数组
int getRoot(int a) {  //在并查集中查找a的根节点的函数while (v[a] != -1)a = v[a];//结点a与v[a]是否连接(或者间接即多跳连接)//着(在边子集中)同一个结点 ,注意!!此处是循环while而非判断if return a;
}void Kruskal(Graph g, int &sum, Road *road) {int i;int N, E, a, b;N = g.vetexs;//节点数E = g.brim;//边数sum = 0;for (i = 0; i < g.vetexs; ++i)//初始化并查集v[i] = -1;sort(road, E);//排序操作,使数组按权值有小到大排序for (i = 0; i < E; ++i) {a = getRoot(road[i].a);b = getRoot(road[i].b);if (a != b)//判断结点road[i].a与road[i].b是否连//接(或者间接即多跳连接)着(在边子集中)同一个结点,//注意:假设结点edges[i].a与结点edges[i].b都跟量//外一个结点X相连(或者间接相连),如若不加判断,则三个结点会形成回路 {v[a] = b;sum += road[i].w;//求生成树的权值,这句并不是本算法的固定//写法,可以换成其他的,,例如输出各边}}
}


http://www.lbrq.cn/news/1450009.html

相关文章:

  • 建设购物网站/线下推广宣传方式有哪些
  • 张家港普通网站建设/域名服务器ip查询网站
  • wordpress 写文章页面/seo建站
  • 老域名怎么做新网站/现在百度推广有用吗
  • 如何制作单页网站/站外推广方式
  • 怎么做微商的微网站/全网网络营销
  • 目前网站开发有什么缺点/免费推广app平台有哪些
  • 上海房产做哪个网站好/创建软件平台该怎么做
  • 威海有名的做网站/免费制作网站
  • 网站建设包括哪些/代做百度收录排名
  • 中国建设招标网 官方网站/商丘seo排名
  • 办公用纸网站建设/武汉百度百科
  • 深圳建站网站/软文代写网
  • 找专业做网站的公司/公关公司排行榜
  • 南宁推广软件/新手怎么做seo优化
  • 网站如何做单项链接/外贸如何推广
  • 今天主要新闻/长沙seo霜天博客
  • 英文网站开发/南平seo
  • 做网站的法律/廊坊关键词优化平台
  • 泉州网站建设公司首选/合肥网站关键词排名
  • 网站建设与服务技能实训心得体会/营业推广
  • 单纯做网站的公司/东莞百度快速排名
  • 网站网页/关于新品牌的营销策划
  • 金融网站素材/全国唯一一个没有疫情的城市
  • 专门做日本旅游的网站/成人短期就业培训班
  • 服装网站建设策划/域名注册商怎么查
  • 公司网站模块制作/网络推广优化seo
  • 宣武上海网站建设/有什么公司要做推广的
  • 什么网站算是h5做的/免费的网站软件下载
  • wordpress资讯站模板/搜索引擎推广简称
  • DM数据库的安全版本SYSDBA无法修改其他用户密码?
  • 4、docker数据卷管理命令 | docker volume
  • Vue Router 路由的创建和基本使用(超详细)
  • YooAsset源码阅读-Downloader篇
  • C++ - 基于多设计模式下的同步异步日志系统(11w字)
  • Scrapy爬虫集成MongoDB存储