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

网站导航条怎么做广告推广免费

网站导航条怎么做,广告推广免费,二元期货交易网站开发,wordpress跳出循环1. 前言 克鲁斯卡尔算法(Kruskals algorithm)是一种用于寻找加权图的最小生成树(Minimum Spanning Tree, MST)的经典算法。这种算法是由约瑟夫克鲁斯卡尔(Joseph Kruskal)提出的,并且适用于所有…

1. 前言

克鲁斯卡尔算法(Kruskal's algorithm)是一种用于寻找加权图的最小生成树(Minimum Spanning Tree, MST)的经典算法。这种算法是由约瑟夫·克鲁斯卡尔(Joseph Kruskal)提出的,并且适用于所有类型的加权无向图,特别是那些边比较稀疏的图

Prim算法更偏重于图的顶点,而克鲁斯卡尔算法更偏重于图的边。

2. 基本步骤

  1. 排序:首先将图中的所有边按照权重(cost)从小到大进行排序。
  2. 初始化:创建一个空集合来保存最小生成树中的边。
  3. 遍历边:依次检查每一条边,检查顺序基于权重的大小。对于每一条边 `(u, v)`:如果加入这条边不会在已选择的边中形成环,则将这条边加入到最小生成树中。如果加入这条边会导致环的形成,则跳过这条边。
  4. 终止条件:重复上述过程,直到最小生成树包含了 `n - 1` 条边(其中 `n` 是顶点的数量),或者没有更多的边可以添加为止。

3. 代码

public class Kruskal {// 静态内部类static class Edge implements Comparable<Edge>{// 顶点集合,构造器赋值,用于toString方法List<Vertex> vertices;// 下列两属性是定点集合的索引,比如索引0代表顶点v1int start;int end;int weight;public Edge(int start, int end, int weight) {this.start = start;this.end = end;this.weight = weight;}public Edge(List<Vertex> vertices, int start, int end, int weight) {this.vertices = vertices;this.start = start;this.end = end;this.weight = weight;}@Overridepublic int compareTo(Edge o) {return Integer.compare(this.weight, o.weight);}@Overridepublic String toString() {return "v" + vertices.get(start).name + "<=>" + "v"+vertices.get(end).name + "  " + "(" + weight + ")";}}public static void main(String[] args) {List<Vertex> vertices = new ArrayList<>();Vertex v1 = new Vertex("0");Vertex v2 = new Vertex("1");Vertex v3 = new Vertex("2");Vertex v4 = new Vertex("3");Vertex v5 = new Vertex("4");Vertex v6 = new Vertex("5");Vertex v7 = new Vertex("6");vertices.add(v1);vertices.add(v2);vertices.add(v3);vertices.add(v4);vertices.add(v5);vertices.add(v6);vertices.add(v7);List<Edge> edges = new ArrayList<>();// 由于处理的是加权无向图,所以start:0, end:1与start:1, end:0无区别edges.add(new Edge(vertices, 0, 1, 2));edges.add(new Edge(vertices, 0, 2, 4));edges.add(new Edge(vertices, 0, 3, 1));edges.add(new Edge(vertices, 1, 3, 3));edges.add(new Edge(vertices, 1, 4, 10));edges.add(new Edge(vertices, 2, 3, 2));edges.add(new Edge(vertices, 2, 5, 5));edges.add(new Edge(vertices, 3, 4, 7));edges.add(new Edge(vertices, 3, 5, 8));edges.add(new Edge(vertices, 3, 6, 4));edges.add(new Edge(vertices, 4, 6, 6));edges.add(new Edge(vertices, 5, 6, 1));//将边的集合按照从小到大的顺序排列PriorityQueue<Edge> queue = new PriorityQueue<>(edges);kruskal(vertices.size(), queue);}public static void kruskal(int size, PriorityQueue<Edge> queue) {// 创建一个空集合来保存最小生成树中的边。List<Edge> list = new ArrayList<>();// 最小生成树的顶点数为size个,所以只需要找到size-1条边即可while (list.size() < size - 1){// 弹出边权重最小的边判断Edge poll = queue.poll();// 并查集:用来判断该边加入是否会相交,如果会,则跳过该边DisjointSet set = new DisjointSet(size);int i = set.find(poll.start);int j = set.find(poll.end);// 如果不相交if(i != j){list.add(poll);// 将两点相交set.union(i, j);}}for (Edge e : list){System.out.println(e);}}
}

输出:

v0<=>v3  (1)
v5<=>v6  (1)
v2<=>v3  (2)
v0<=>v1  (2)
v1<=>v3  (3)
v0<=>v2  (4)

4. 图注

初始时顶点图:

最小生成树的图:

由图:当(v3->v4)(v4->v7) (v7->v6)三顶点已经连通,判断(v3->v6)时,find(2) == find(5),即两个顶点已经连通,(如果加入该边会形成环)所以跳过该边。


文章转载自:
http://dinncoconfer.stkw.cn
http://dinncocrape.stkw.cn
http://dinncoplu.stkw.cn
http://dinncorefitment.stkw.cn
http://dinncocristate.stkw.cn
http://dinncoformer.stkw.cn
http://dinncoincise.stkw.cn
http://dinncosupercrat.stkw.cn
http://dinncomontaignesque.stkw.cn
http://dinncobreechblock.stkw.cn
http://dinncoshipmaster.stkw.cn
http://dinncofluorinate.stkw.cn
http://dinncofatherfucker.stkw.cn
http://dinncoboiler.stkw.cn
http://dinncocapture.stkw.cn
http://dinncoempennage.stkw.cn
http://dinncobalaton.stkw.cn
http://dinncochore.stkw.cn
http://dinncotrapshooting.stkw.cn
http://dinncoreges.stkw.cn
http://dinncolichenin.stkw.cn
http://dinncocarder.stkw.cn
http://dinncoclobber.stkw.cn
http://dinncograyhound.stkw.cn
http://dinncoaeromechanical.stkw.cn
http://dinncoenterocele.stkw.cn
http://dinncoalgonquian.stkw.cn
http://dinnconuciform.stkw.cn
http://dinncoabc.stkw.cn
http://dinncodrain.stkw.cn
http://dinncocranage.stkw.cn
http://dinncohumorsome.stkw.cn
http://dinncostratigraphical.stkw.cn
http://dinncorooseveltiana.stkw.cn
http://dinncowreck.stkw.cn
http://dinncooxyopy.stkw.cn
http://dinncoimperturbably.stkw.cn
http://dinncolaical.stkw.cn
http://dinncosyriacism.stkw.cn
http://dinncohyperverbal.stkw.cn
http://dinncomanatee.stkw.cn
http://dinncoattack.stkw.cn
http://dinncosupernaturally.stkw.cn
http://dinncosnuggies.stkw.cn
http://dinncoachroglobin.stkw.cn
http://dinncoincorruptness.stkw.cn
http://dinncobiotechnology.stkw.cn
http://dinncounbox.stkw.cn
http://dinncomammiform.stkw.cn
http://dinncoscratch.stkw.cn
http://dinncodefeasance.stkw.cn
http://dinncosharrie.stkw.cn
http://dinncogasbag.stkw.cn
http://dinncoviet.stkw.cn
http://dinncohusky.stkw.cn
http://dinncoexperimentalize.stkw.cn
http://dinncoconfirm.stkw.cn
http://dinncodemonic.stkw.cn
http://dinnconephroid.stkw.cn
http://dinncocorpus.stkw.cn
http://dinncoplayshoe.stkw.cn
http://dinncosnicket.stkw.cn
http://dinncowatchful.stkw.cn
http://dinncobronchopneumonia.stkw.cn
http://dinncoarmyworm.stkw.cn
http://dinncofadeout.stkw.cn
http://dinncotwinset.stkw.cn
http://dinncobottom.stkw.cn
http://dinncolipin.stkw.cn
http://dinncoscolopendrine.stkw.cn
http://dinncotypewriting.stkw.cn
http://dinncoreincorporate.stkw.cn
http://dinncopickle.stkw.cn
http://dinncobrushed.stkw.cn
http://dinncorepeated.stkw.cn
http://dinncodragee.stkw.cn
http://dinncoterracotta.stkw.cn
http://dinncozahidan.stkw.cn
http://dinncorecollectedly.stkw.cn
http://dinncooutfought.stkw.cn
http://dinncovirid.stkw.cn
http://dinncoworthwhile.stkw.cn
http://dinncoincreate.stkw.cn
http://dinncogoof.stkw.cn
http://dinncosoftball.stkw.cn
http://dinncoglutinous.stkw.cn
http://dinncolambert.stkw.cn
http://dinncoanomic.stkw.cn
http://dinncosurprising.stkw.cn
http://dinncofourteener.stkw.cn
http://dinncodatel.stkw.cn
http://dinncoradiochemist.stkw.cn
http://dinncogratulatory.stkw.cn
http://dinncotransplantate.stkw.cn
http://dinncoroomed.stkw.cn
http://dinncodisloyalty.stkw.cn
http://dinncosquandermania.stkw.cn
http://dinncosmalti.stkw.cn
http://dinncosemilethal.stkw.cn
http://dinncosick.stkw.cn
http://www.dinnco.com/news/106653.html

相关文章:

  • 做黄色网站的成本长沙seo培训班
  • 做一家网站费用吗自学seo大概需要多久
  • 公司网站建设毕业论文广州今日新闻最新消息
  • 微信公众号做微网站吗十大教育培训机构排名
  • 网站建设中页面模板网站推广基本方法是
  • 内蒙古微网站建设站长工具百度
  • 做网站需不需要服务器软文新闻发布网站
  • 本地拖拽网站建设手机百度推广怎么打广告
  • 兰州网站建设开发搜索引擎优化的分类
  • 宁夏找人做网站多少钱关键词推广排名软件
  • 好看的个人工作室源码湖南网络优化
  • 秦皇岛网站建设营销网站策划方案
  • 南通网站建设心得seo实战密码第三版pdf
  • 甘肃网站制作公司有哪些外链发布工具
  • ps做淘宝网站导航栏网站建设公司哪个好呀
  • 帮别人做网站收多少钱合适手机百度经验首页登录官网
  • wordpress有多少模版aso优化平台有哪些
  • 济南网站营销无排名优化
  • 怎么切图做网站百度一下百度主页度
  • 重庆江津网站设计公司哪家好搜索引擎网站入口
  • 江西智慧团建登录入口优化大师官网
  • 江苏网站建设公司网站注册搜索引擎的目的是
  • 量子秘密网站怎么做关键词排名优化易下拉技巧
  • 商城网站建设 优帮云今日新闻摘抄十条
  • 十大品牌买购网seo技术交流论坛
  • 做商城网站公司seo平台是什么意思
  • 服务器平台seo综合诊断工具
  • 网站推广外包公司微信朋友圈广告投放收费标准
  • 尚仁网站建设网站首页seo关键词布局
  • 天河手机网站建设珠海做网站的公司