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

做长直播的房地产网站北京网站建设可选兴田德润

做长直播的房地产网站,北京网站建设可选兴田德润,网络服务主要有什么服务,wordpress添加可链接照片实现描述 为了造出一棵最小生成树,我们从最小边权的边开始,按边权从小到大依次加入,如果某次加边产生了环,就扔掉这条边,直到加入了 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://www.yayakq.cn/news/558653/

相关文章:

  • 开商城网站游戏网站开发文档
  • 企业集团网站建设长沙品质网站建设优点
  • 高校学生红色网站建设辽宁省锦州市住房与城乡建设厅网站
  • dw做网站 怎么做背景图片上海人才网官方网站
  • 网站的视频做gifgoodstore wordpress
  • 如何建设公司门户网站中铁建设集团门户网站登陆
  • 建网站需要什么资质wordpress萌主题下载地址
  • 怎么做网站的导航条机构改革 住房与城乡建设厅网站
  • 教务处网站建设方案网站空间域名多少钱
  • 时尚网站模板wordpress 页面评论 调用
  • 成品网站源码1688版本号汕头快速优化排名
  • 青岛网站建设方案服务免费seo推广计划
  • 杭州做网站哪家好网站商业授权
  • 网站备案和域名备案一样吗东莞好的网站国外站建设价格
  • 网页设计网站欣赏品牌搭建网站 官网
  • 网站没有备案是假的吗做网站的项目策划书
  • 学做网站用到哪些知识seo这个职位是干什么的
  • 企业网站建设合同 百度文库自己网站打不开
  • 专业的网站建站公司关于建设网站的需求
  • iis 怎么绑定网站二级目录合肥 网站平台建设公司
  • 自己做网站自己做推广教程视频教程肥西县重点建设局网站
  • 营销型外贸网站定制p2p网站开发价格
  • 网站公司做的网站被攻击辽源市网站建设
  • 社区网站的建设wordpress 防爬虫
  • 花生壳网站无法登陆怎样做模具钢网站
  • 网站推广商品怎么做效果最好棋牌软件开发工作室
  • 企业怎么做好网站优化模板建设网站
  • 为企业做网站还有前途吗怎么把百度地图放到网站上
  • 微信注册网站入口沧州贴吧
  • 常州手机网站制作杭州建设网站