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

鹿泉网站制作公司seo名词解释

鹿泉网站制作公司,seo名词解释,免费域名注册商,郑州网站建设小程序一、Kruskal算法简史 克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪婪算法的应用。和Boruvka算法不同的地方是,Kruska…

一、Kruskal算法简史

克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪婪算法的应用。和Boruvka算法不同的地方是,Kruskal算法在图中存在相同权值的边时也有效。

二、Kruskal算法思路


(1)记Graph中有v个顶点,e个边;
(2)新建图,拥有原图中相同的e个顶点,但没有边;
(3)将原图中所有e个边按权值从小到大排序;
(4)循环:从权值最小的边开始遍历每条边,直至图中所有的节点都在同一个连通分量中。
如果这条边连接的两个节点于图中不在同一个连通分量中,添加这条边到图中。如此反复。

三、Kruskal算法的源代码

核心代码:

using System;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public class Subset{public int Parent { get; set; } = 0;public int Rank { get; set; } = 0;}/// <summary>/// 最小生成树 Kruskal 算法/// </summary>public static class MST_Kruskal_Algorithm{private static int Find(Subset[] subsets, int i){if (subsets[i].Parent != i){subsets[i].Parent = Find(subsets, subsets[i].Parent);}return subsets[i].Parent;}private static void Union(Subset[] subsets, int x, int y){int xroot = Find(subsets, x);int yroot = Find(subsets, y);if (subsets[xroot].Rank < subsets[yroot].Rank){subsets[xroot].Parent = yroot;}else if (subsets[xroot].Rank > subsets[yroot].Rank){subsets[yroot].Parent = xroot;}else{subsets[yroot].Parent = xroot;subsets[xroot].Rank++;}}public static int Execute(Undirected_Graph graph, out List<WeightEdge> tree){tree = new List<WeightEdge>();int Vertex_Number = graph.Vertex_Number;WeightEdge[] result = new WeightEdge[Vertex_Number];int e = 0;int i = 0;for (i = 0; i < Vertex_Number; ++i){result[i] = new WeightEdge();}graph.EdgeArray.Sort(delegate(WeightEdge a, WeightEdge b) { return a.CompareTo(b); });Subset[] subsets = new Subset[Vertex_Number];for (i = 0; i < Vertex_Number; ++i){subsets[i] = new Subset();}for (int v = 0; v < Vertex_Number; ++v){subsets[v].Parent = v;subsets[v].Rank = 0;}i = 0;while (e < (Vertex_Number - 1)){WeightEdge next_edge = graph.EdgeArray[i++];int x = Find(subsets, next_edge.Start);int y = Find(subsets, next_edge.End);if (x != y){result[e++] = next_edge;Union(subsets, x, y);}}int minimumCost = 0;for (i = 0; i < e; ++i){tree.Add(new WeightEdge(result[i].Start,result[i].End, result[i].Weight));minimumCost += result[i].Weight;}return minimumCost;}}
}

 ——————————————————————

POWER BY 315SOFT.COM &
TRUFFER.CN

http://www.dt0577.cn/news/43189.html

相关文章:

  • 那个网站可以做空比特币百度移动端模拟点击排名
  • 网站 备案 营业执照互联网全媒体广告代理
  • 国内做卷学习网站上海小红书seo
  • 网站怎么上线sem是什么专业
  • 设计师一般上什么网站石家庄网站建设案例
  • 保定市共青团下属网站一个完整的营销策划方案范文
  • 主机租赁平台seo营销的概念
  • 免费wordpress主题下载seo兼职工资一般多少
  • 重庆网站建设最大免费海报模板网站
  • 网站内部链接怎么做百度自动搜索关键词软件
  • 辽宁沈阳做网站大数据是干什么的
  • 网站如何做移动适配网店推广方式有哪些
  • 网站设计制作用软件如何去推广一个app
  • 旅游社做的最好的网站谷歌sem和seo区别
  • 一个公司网站备案百度搜索指数1000是什么
  • 网站设计的规范seo建站网络公司
  • 专做茶叶的网站360网站安全检测
  • 网站接入网方式cms建站系统
  • wordpress文章列表天津seo推广服务
  • 网站建设合同内容手机app软件开发
  • 陕西省和城乡建设厅网站百度指数是免费的吗
  • 培训通网站建设地域名网址查询
  • 福田区网站建网站推广的要点
  • 龙采做网站要多少钱网络广告策划案例
  • 白云做网站的公如何引流推广
  • 重庆网站建设最大百度高级搜索功能
  • 网站如何做电脑销售私域营销
  • 怎么样在公司配置服务器做网站2023年10月爆发新冠
  • 克隆网站怎么做后台上海今天最新发布会
  • 考研网站做刷词友情链接的形式有哪些