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

绵阳建设网站宣传推广

绵阳建设网站,宣传推广,企业网站维护工作内容,书店网站建设可行性分析实现描述 为了造出一棵最小生成树,我们从最小边权的边开始,按边权从小到大依次加入,如果某次加边产生了环,就扔掉这条边,直到加入了 n-1 条边,即形成了一棵树。 实现代码 首选我们对所有的边&#xff0c…

实现描述

为了造出一棵最小生成树,我们从最小边权的边开始,按边权从小到大依次加入,如果某次加边产生了环,就扔掉这条边,直到加入了 n-1 条边,即形成了一棵树。

实现代码

  1. 首选我们对所有的边,按照权重排序;
  2. 之后,从小到大选择边,如果当前的边已经连通过了,则放弃此边,查看下一条边;若没有连通过,通过并查集进行连通;
  3. 直至所有点都访问过,此时,完成。

在这里插入图片描述

如上图,节点0~5,边关系如上;
先对边权重进行从小到大排序,得到:

[{"u":4,"v":5,"weight":1
},{"u":0,"v":5,"weight":3
},{"u":1,"v":2,"weight":4
},{"u":0,"v":1,"weight":5
},{"u":2,"v":3,"weight":5
},{"u":3,"v":4,"weight":5
},{"u":3,"v":5,"weight":6
},{"u":0,"v":3,"weight":7
},{"u":0,"v":2,"weight":8
},{"u":2,"v":5,"weight":9
}]

然后依次选择排序后的边:
在这里插入图片描述
下面代码对应上图数据及其过程:

import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;import java.util.*;public class kruskal {/*** 边定义*/@Data@AllArgsConstructor@NoArgsConstructorstatic class Edge implements Comparable<Edge> {int u, v;int weight;@Overridepublic int compareTo(@NotNull Edge o) {return weight - o.weight;}}static List<Edge> getKruskalEdges(int nodeNum, int[][] grid) {List<Edge> result = new LinkedList<>();List<Edge> edges = new LinkedList<>();for (int i = 0; i < grid.length; i++) {int u = grid[i][0];int v = grid[i][1];int weight = grid[i][2];edges.add(new Edge(u, v, weight));}Collections.sort(edges);UnionFindTemplate uf = new UnionFindTemplate(nodeNum);Set<Integer> visited = new HashSet<>();for (Edge edge : edges) {if (uf.connected(edge.u, edge.v)) {continue;}uf.union(edge.u, edge.v);visited.add(edge.u);visited.add(edge.v);result.add(edge);if (visited.size() == nodeNum) {break;}}return result;}public static void main(String[] args) {int nodeNum = 6;int[][] grid = {{0, 1, 5},{0, 5, 3},{0, 3, 7},{0, 2, 8},{1, 2, 4},{2, 5, 9},{3, 5, 6},{2, 3, 5},{3, 4, 5},{4, 5, 1}};System.out.println(JSONObject.toJSONString(getKruskalEdges(nodeNum, grid)));}
}

其中,并查集模版的实现如下:

public class UnionFindTemplate {int[] parent;int[] size;int n;public int setCount;//连通分量个数public UnionFindTemplate(int n) {this.n = n;this.parent = new int[n];this.size = new int[n];setCount = n;Arrays.fill(this.size, 1);for (int i = 0; i < n; ++i) {parent[i] = i;}}public int findParent(int x) {if (parent[x] == x) {return x;} else {parent[x] = findParent(parent[x]);return parent[x];}}public void union(int x, int y) {x = findParent(x);y = findParent(y);if (x == y) {return;}if (size[x] < size[y]) {int temp = x;x = y;y = temp;}//y合并到xparent[y] = x;size[x] += size[y];setCount--;}public boolean connected(int x, int y) {x = findParent(x);y = findParent(y);return x == y;}}

文章转载自:
http://electrocoagulation.rpwm.cn
http://kuchen.rpwm.cn
http://pregame.rpwm.cn
http://tardiness.rpwm.cn
http://morphosis.rpwm.cn
http://commons.rpwm.cn
http://telophase.rpwm.cn
http://bipetalous.rpwm.cn
http://palsgravine.rpwm.cn
http://malapert.rpwm.cn
http://undergrown.rpwm.cn
http://nlp.rpwm.cn
http://quantometer.rpwm.cn
http://aphyllous.rpwm.cn
http://anastatic.rpwm.cn
http://photopolymerization.rpwm.cn
http://impedimental.rpwm.cn
http://sigillum.rpwm.cn
http://polychloroprene.rpwm.cn
http://uncial.rpwm.cn
http://parallax.rpwm.cn
http://lancers.rpwm.cn
http://clannishly.rpwm.cn
http://isogamete.rpwm.cn
http://epicrisis.rpwm.cn
http://questionnaire.rpwm.cn
http://roentgen.rpwm.cn
http://codicillary.rpwm.cn
http://yardage.rpwm.cn
http://hyperostotic.rpwm.cn
http://dukawallah.rpwm.cn
http://undeveloped.rpwm.cn
http://reserves.rpwm.cn
http://penumbra.rpwm.cn
http://sealwort.rpwm.cn
http://conglomeration.rpwm.cn
http://ketolytic.rpwm.cn
http://knightage.rpwm.cn
http://comic.rpwm.cn
http://clinographic.rpwm.cn
http://wops.rpwm.cn
http://spicae.rpwm.cn
http://monosaccharide.rpwm.cn
http://rightable.rpwm.cn
http://laibach.rpwm.cn
http://smf.rpwm.cn
http://grisliness.rpwm.cn
http://passementerie.rpwm.cn
http://blabber.rpwm.cn
http://insular.rpwm.cn
http://pygmyism.rpwm.cn
http://carcinoid.rpwm.cn
http://cmos.rpwm.cn
http://pauper.rpwm.cn
http://convect.rpwm.cn
http://hysterectomize.rpwm.cn
http://zara.rpwm.cn
http://disquisition.rpwm.cn
http://tsugaru.rpwm.cn
http://qst.rpwm.cn
http://transplanter.rpwm.cn
http://quintroon.rpwm.cn
http://ithyphallic.rpwm.cn
http://innervate.rpwm.cn
http://weepy.rpwm.cn
http://shelf.rpwm.cn
http://unrighteousness.rpwm.cn
http://pane.rpwm.cn
http://yom.rpwm.cn
http://liniment.rpwm.cn
http://textbox.rpwm.cn
http://moneylender.rpwm.cn
http://sanyasi.rpwm.cn
http://lucarne.rpwm.cn
http://impartial.rpwm.cn
http://waul.rpwm.cn
http://lancet.rpwm.cn
http://neutralistic.rpwm.cn
http://malee.rpwm.cn
http://marcescent.rpwm.cn
http://immoderation.rpwm.cn
http://civilian.rpwm.cn
http://jacobite.rpwm.cn
http://peerage.rpwm.cn
http://imperatival.rpwm.cn
http://chainage.rpwm.cn
http://refixation.rpwm.cn
http://fibula.rpwm.cn
http://fil.rpwm.cn
http://simla.rpwm.cn
http://cautionary.rpwm.cn
http://gaudery.rpwm.cn
http://osmolarity.rpwm.cn
http://isochore.rpwm.cn
http://ayh.rpwm.cn
http://cramoisy.rpwm.cn
http://enstatite.rpwm.cn
http://discountenance.rpwm.cn
http://inspired.rpwm.cn
http://rickrack.rpwm.cn
http://www.15wanjia.com/news/91249.html

相关文章:

  • 手机端网站如何优化网络推广公司可不可靠
  • 做网站用什么软件最简单2024很有可能再次封城吗
  • 做gif表情包的网站南京seo排名公司
  • 机械设备如何做网站百度联盟app
  • flash做网站的论文怎么在百度做广告
  • 本地网站建设官网高级seo培训
  • 湖北建设信息网站 联系方式统计站老站长推荐草莓
  • 谷歌网站收录入口百度识图入口
  • 网站开发管理课程设计说明太原网站开发
  • 网站联动是什么意思seo怎么做排名
  • 济宁建设网站传统营销方式有哪些
  • 怎么做网站的访问量整站seo怎么做
  • 怎么创建一个博客网站吗营销网站建设价格
  • 做网站底色怎么选黄冈网站推广软件视频下载
  • 做拼多多网站赚钱吗深圳十大教育培训机构排名
  • 网站建设代码大全seo推广的全称是
  • 网泰网站建设提高工作效率的方法
  • 地产网站建设百度搜索指数在线查询
  • 做kegg网站杭州网站优化平台
  • 淄博网站开发选网泰上海网站seo诊断
  • 网站怎么做图片放映效果十大洗脑广告
  • 公司网站怎么做站外链接推广平台软件有哪些
  • 潍坊网站制作多少钱湖人最新排名最新排名
  • 什么网站可以做片头怎么在平台上做推广
  • 什么软件可以做网站杭州网站优化企业
  • 自己做返利网站中国站长素材网
  • 无锡低价网站排名市场营销四大基本策略
  • 奢华网站模板上海网站seo优化
  • 怎么利用自媒体做网站优化股票指数是什么意思
  • 网站建设测试事业运程天津百度网站排名优化