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

佛山网站推广免费简历模板下载word可编辑

佛山网站推广,免费简历模板下载word可编辑,下面哪个是h5轻设计平台,互联网技术试验卫星目录 1.最小生成树算法 1.Kruskal算法 2.Prim算法 1.最小生成树算法 定义:最小生成树算法:连通图有n个顶点组成,那么此时的图的每一个点都能相互连接并且边的个数为n-1条,那么此时该图就是最小生成树. 下面量算法有几个共同的特点: 1.只能使用图中权值最小的边来构造生成树 …

目录

1.最小生成树算法

1.Kruskal算法

2.Prim算法


1.最小生成树算法

定义:最小生成树算法:连通图有n个顶点组成,那么此时的图的每一个点都能相互连接并且边的个数为n-1条,那么此时该图就是最小生成树.

下面量算法有几个共同的特点:

1.只能使用图中权值最小的边来构造生成树

2.只能使用恰好n-1条边构造生成树

3.n-1条边的图不能存在回路

4.Kruskal和Prim两个算法都采用了逐步求解的贪心策略

1.Kruskal算法

任给一个有n个顶点的连通网络N={V,E},首先构造一个由这n个顶点组成、不含任何边的图G={V,NULL},其中每个顶点自成一个连通分量,其次不断从E中取出权值最小的一条边(若有多条任取其一),若该边的两个顶点来自不同的连通分量,则将此边加入到G中。如此重复,直到所有顶点在同一个连通分量上为止。核心:每次迭代时,选出一条具有最小权值,且两端点不在同一连通分量上的边,加入生成树。

		//数组的下标添加边void _AddEdge(size_t srci, size_t dsti, const W& w){_matrix[srci][dsti] = w;// 无向图if (Direction == false){_matrix[dsti][srci] = w;}}struct Edge{size_t _srci;size_t _dsti;W _w;Edge(size_t srci, size_t dsti, const W& w):_srci(srci), _dsti(dsti), _w(w){}bool operator>(const Edge _edge)const{return _w > e._w;}};W Kruskal(Self& minTree){size_t n = _vertexs.size();minTree._vertexs = _vertexs;minTree._indexMap = _indexMap;minTree._matrix.resize(n);for (size_t i = 0; i < n; ++i){minTree._matrix[i].resize(n, MAX_W);}priority_queue<Edge, vector<Edge>, greater<Edge>> minque;for (size_t i = 0; i < n; ++i){for (size_t j = 0; j < n; ++j){if (i < j && _matrix[i][j] != MAX_W){minque.push(Edge(i, j, _matrix[i][j]));}}}int size = 0;W totalW = W();UnionFindSet ufs(n);while (!minque.empty()){Edge min = minque.top();minque.pop();if (!ufs.InSet(min._srci, min._dsti)){minTree._AddEdge(min._srci, min._dsti, min._w);ufs.Union(min._srci, min._dsti);++size;totalW += min._w;}}if (size == n - 1)return totalW;elsereturn W();}

2.Prim算法

1.从源点出发,将所有与源点连接的点加入一个待处理的集合中

2.从集合中找出与源点的边中权重最小的点,从待处理的集合中移除标记为确定的点

3.将找到的点按照步骤1的方式处理

4.重复2,3步直到所有的点都被标记

(重点是不需要并查集来判断是否成环,因为两个集合就天然区分是否成环的因素)

		W Prim(Self& minTree,const V& src){size_t srci = GetVertexIndex(src);size_t n = _vertexs.size();minTree._vertexs = _vertexs;minTree._indexMap = _indexMap;minTree._matrix.resize(n);for (size_t i = 0; i < n; ++i){minTree._matrix[i].resize(n, MAX_W);}vector<bool> X(n, false);vector<bool> Y(n, true);X[srci] = true;Y[srci] = false;priority_queue<Edge, vector<Edge>, greater<Edge>> minq;for (int i = 0; i < n; ++i){if (_matrix[srci][i] != MAX_W){minq.push(Edge(srci, i, _matrix[srci][i]);}}size_t num = 0;W sum = W();while (!minq.empty()){Edge min = minq.top();minq.pop();if (!X[min._dsti]){minTree.AddEdge(min._srci, min._dsti, min._w);X.insert(min._dsti);Y.erase(min._dsti);++num;sum += min._w;if (num == n - 1) break;for (int i = 0; i < n; ++i){if (_matrix[min._dsti][i] != MAX_W && Y[i]){minq.push(Edge(min._dsti, i, _matrix[min._dsti][i]);}}}}if (num == n - 1)return sum;elsereturn W();}
http://www.yayakq.cn/news/161375/

相关文章:

  • 织梦网站如何做地区分站网站数据不变重新安装wordpress
  • 电商加盟网站建设yanderedev wordpress
  • 涟水网站建设中国500强企业
  • 企业网站功能介绍ps如何做网站轮播图
  • 网站建设项目心得体会户县住房和城乡建设局官方网站
  • 制作企业网站要花多少钱海口创建公司
  • 查企业营业执照的网站随州网站建设
  • 做转运网站北京律师网站建设推荐
  • 沈阳新民网站建设赣州硕康网络科技有限公司
  • 网站推广策略ppt公司网页设计价格多少
  • 东莞网站优化方式seo网站排名优化工具
  • ui特效网站做产品包装的3d网站
  • 免费网络wifi连接律师个人 网站做优化
  • 正规的网站制作联系方式唐山seo推广公司
  • 建设门户网站人均ip1000需要多大数据库办营业执照网上怎么申请
  • 2024网站推广wordpress子主题缺点
  • 武邑网站建设代理关于 门户网站 建设 请示
  • 目前做那些网站能致富如何做市场调研和分析
  • 苏州网站设计制作公司电商推广专员
  • 学术会议网站建设淘宝网站是谁做的好
  • 做网站为什么选择竞网智赢google网站质量
  • 衡水网站推广公司网页尺寸1920
  • 设计之家素材用仿网站做优化有效果吗
  • 网站广告位怎么做网站开发和小程序开发区别
  • 域名注册好了 怎么做网站wordpress文章浏览数
  • 起零网站建设wordpress阿里秀模板
  • 在猪八戒上做网站要注意什么如何在百度网站收录提交入口
  • 网站页面设计欣赏模板保定哪里有做网站的
  • 业务员自己掏钱做网站可以吗移动端网站建设的尺寸
  • 大连模板网建站免费建单页网站