昆明城乡建设网站上海官方最新消息

pingmian/2026/1/20 12:19:54/文章来源:
昆明城乡建设网站,上海官方最新消息,石家庄云图网站建设,网站建设与维护功能意义Prim算法和Kruskal算法都是用于解决最小生成树问题的经典算法#xff0c;它们在不同情况下有不同的适用性和特点。 Prim算法#xff1a; Prim算法是一种贪心算法#xff0c;用于构建一个无向图的最小生成树。算法从一个初始节点开始#xff0c;逐步添加与当前树连接且具有…Prim算法和Kruskal算法都是用于解决最小生成树问题的经典算法它们在不同情况下有不同的适用性和特点。 Prim算法 Prim算法是一种贪心算法用于构建一个无向图的最小生成树。算法从一个初始节点开始逐步添加与当前树连接且具有最小权重的边直到所有节点都被连接。Prim算法的基本思想是从一个起始节点出发每次选择一个与当前最小生成树相连的节点中权重最小的边将这个节点加入最小生成树中并将其相连的边考虑进来。这样逐步扩展最小生成树直至所有节点都被包含。 Kruskal算法 Kruskal算法也是一种贪心算法用于构建一个无向图的最小生成树。该算法首先将图中的所有边按照权重从小到大进行排序然后从最小权重边开始依次将边加入生成树中但要保证加入边不会形成环。如果加入某条边会导致环的形成则放弃该边继续考虑下一条权重较小的边直到生成树中包含了所有的节点。 区别 基本思想Prim算法从一个起始节点开始逐步添加与当前最小生成树相连的具有最小权重的边。Kruskal算法通过排序边然后逐个添加边保证不形成环。 顶点处理Prim算法在每一步选择中仅考虑与当前已选择顶点相连的顶点直接操作顶点。Kruskal算法是通过遍历边的方式进行操作不直接关心顶点。 数据结构Prim算法通常使用优先队列最小堆来维护待选的边以便每次选择具有最小权重的边。Kruskal算法则通常使用并查集来判断是否会形成环。 性能在边的数量较少而顶点的数量较多时Prim算法通常会更有效。而在边的数量较多而顶点的数量较少时Kruskal算法可能更适用。 复杂度Prim算法的时间复杂度通常在 O(V^2) 到 O(E* log(V)) 之间取决于实现方式。Kruskal算法的时间复杂度主要由排序边的复杂度决定通常为 O(E * log(E))。 总的来说两种算法都能有效地构建最小生成树但在不同情况下选择合适的算法可以提高效率。 1135. 最低成本联通所有城市 想象一下你是个城市基建规划者地图上有 n 座城市它们按以 1 到 n 的次序编号。 给你整数 n 和一个数组 conections其中 connections[i] [xi, yi, costi] 表示将城市 xi 和城市 yi 连接所要的costi连接是双向的。 返回连接所有城市的最低成本每对城市之间至少有一条路径。如果无法连接所有 n 个城市返回 -1 该 最小成本 应该是所用全部连接成本的总和。 代码实现 // 定义边 struct Edge{int city;int cost; };// 定义 边的比较方法 // cost值较小的Edge对象具有更高的优先级 // 因为EdgeComparator在a的cost大于b的cost时返回true // 这意味着在优先级队列中a应该在b之后。 // 所以这个优先级队列是一个最小堆min heap即队列顶部总是cost最小的Edge对象 struct EdgeComparator{bool operator()(const Edge a,const Edge b){return a.costb.cost;} };class Solution { public:int minimumCost(int n, vectorvectorint connections) {// 连接所有点需要的costint cost 0;vectorvectorEdge edges(n1);// 定义访问数组vectorbool visited(n1,false);// 定义优先队列, cost小的排在前面priority_queueEdge, vectorEdge, EdgeComparator minHeap;visited[1] true;// 从城市1开始// 建立Edge二维数组// 每个点会对应一个list每个list中存储和这个点相连的城市以及到相连城市的距离for(const auto conn:connections){// 是双向的edges[conn[0]].push_back(Edge{conn[1],conn[2]});edges[conn[1]].push_back(Edge{conn[0],conn[2]});}// 先把和1点相连的Edge进行排序放入优先队列for(const Edge edge:edges[1]){minHeap.push(edge);}// 连接点的数量初始为1int count 1;while(!minHeap.empty()){Edge e minHeap.top();minHeap.pop();if(visited[e.city]){// 如果已经访问过某一点了则直接进入下一次循环continue;}// 如果没有访问过就设置为truevisited[e.city] true;// 再把和这个点相连的Edge push进优先队列for(const Edge edge:edges[e.city]){minHeap.push(edge);}cost e.cost;// 连接点的数量1count;if(count n){return cost;}}return -1;} };1584. 连接所有点的最小费用 给你一个points 数组表示 2D 平面上的一些点其中 points[i] [xi, yi] 。 连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 |xi - xj| |yi - yj| 其中 |val| 表示 val 的绝对值。 请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时才认为所有点都已连接。 完全仿照上面一题的代码写出了这题的代码唯二的区别在于需要自己额外计算一下每个点之间的距离并且不满足条件时返回0 // 定义结构体Edge struct Edge{int city;int cost; };struct EdgeComparator{bool operator()(const Edge a,const Edge b){return a.costb.cost;} };// 计算曼哈顿距离 int compute_Manhattan(vectorvectorint points,int p1,int p2){return abs(points[p1][0]-points[p2][0]) abs(points[p1][1]-points[p2][1]); }class Solution { public:int minCostConnectPoints(vectorvectorint points) {int cost 0;int n points.size();// 点的个数vectorvectorEdge edges(n);priority_queueEdge, vectorEdge, EdgeComparator minHeap;vectorbool visited(n,false); // 访问数组visited[0] true; // 从0点开始searchint count 1; // 已经访问到了的点已经相连的点// 建立了 邻接表for(int i 0;in-1;i){for(int j i1;jn;j){// 两点间的曼哈顿距离int distance compute_Manhattan(points,i,j);edges[i].push_back(Edge{j,distance});edges[j].push_back(Edge{i,distance});}}// 把和0点相关的点push进最小堆for(const Edge edge:edges[0]){minHeap.push(edge);}while(!minHeap.empty()){Edge e minHeap.top();minHeap.pop();if(visited[e.city]){// 如果已经访问过该点则进入下一次循环continue;}visited[e.city] true; // 标记访问过该点// 再把和该点相连的点push 进 minHeapfor(const Edge edge:edges[e.city]){minHeap.push(edge);}cost e.cost; // 加上和这个点相连的costcount;if(count n){// 如果n个点都相连了返回cost即可return cost;}}return 0;} };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页建站实用技术百度关键词排名工具

参考:《X86汇编语言-从实模式到保护模式》-李忠。纯学习笔记,更详细内容请阅读正版书籍。 1 开源的BOCHS虚拟机软件 Bochs是开源软件。它用软件来模拟处理器取指令和执行指令的过程,以及整个计算机硬件。当它开始运行时,就直接模…

长沙网站建设软件好视通视频会议app下载

开放的扩展使许多应用程序受益。 这篇文章描述了两种在Java中实现这种可扩展性的方法。 可扩展的应用 可扩展应用程序是可以扩展其功能而不必重新编译它们 ,有时甚至不必重新启动它们的应用程序。 只需将jar添加到类路径中,或通过更复杂的安装过程来实现…

全网营销型网站建设模板打电话拉客户用网站做广告怎么做 好做吗

饿了吗完成用户注册登录界面搭建axios之get请求axios之post请求跨域注册界面 1.饿了吗完成用户注册登录界面搭建 将端口号8080改为8081 导入依赖,在项目根目录使用命令npm install element-ui -S,添加Element-UI模块 -g:将依赖下载node_glod…

网址查询地址查询站长之家wordpress信息搜索插件

一、原理 栈通常从数据结构和内存空间两个角度解释,从数据结构的角度,栈是一种线性结构表,只允许在固定的一端进行插入和删除元素,从内存空间角度,操作系统为函数和变量分配的内存空间通常在栈区,但是无论…

网站外链发布wordpress图片弹出

[软技能] 在前后端分离项目里,请说说前端传递的token的流程? (一):cookie前端 post 账号密码,后端 response header: set-cookie, 将 token 插入 cookie 内,之后每次针对该域名下的请求都会带上…

做网站网站判刑seo零基础视频教程

计算机网络期末试题北交北京交通大学 2007-2008学年 第学期考试试题课程名称:计算机通信与网络技术 出题人:网络课程组题 号一二三五总分得 分签 字选择题(每题分,共0分)PING命令使用协议的报文A、TCP ?? ?B、UDP ??????????C、…

在做网站的公司做网站运营犯法吗如何给网站做第三方流量监测

【定义】元胞自动机(Cellular Automata, CA)定义在一个具有离散、有限状态的元胞组成的元胞空间上,并按照一定的局部规则,在离散的时间维度上演化的动力学系统。【构成】可以视为由一个元胞空间和定义于该空间的变换函数所组成【构形】在某个时刻&#x…

母婴用品网站建设网络推广工作好不好干

系列文章目录 安装cv2库时出现错误的一般解决方法_cv2库安装失败 SQL> conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案 虚拟机启动时出现“已启用侧通道缓解”的解决方法 Hypervisor launch failed; Processor does not pr…

龙岗网站开发公司深圳品牌火锅店加盟

java如何获取微信timestamp,nonceStr,signature参数发布时间:2021-01-18 11:46:12来源:亿速云阅读:57作者:小新这篇文章主要介绍java如何获取微信timestamp,nonceStr,signature参数,文中介绍的非常详细,具有…

北京赛车手机网站建设杭州商城网站开发

这是去年学习SmartClient时写下的,有兴趣可以看看 将Winform Control嵌入IE,很多时候需要JS脚本与Control进行交互。一方面是在脚本中使用控件的属性,调用控件的方法,另外一方面是脚本中能够响应控件的事件。对于第一个问题较为简单&#…

做乐高肖像的网站wordpress验证码国内

软件简介Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,SpringSecurity(Acegi)来增强密码管理。Jasypt开发团队推出了Java加密工具Jasypt 1…

东莞设计网站企业山东饰品行业网站制作

1.作用 之前介绍的都是我们向网管NCE发起请求获取数据,消息订阅则反过来,是网管NCE系统给我们推送信息。其原理和MQ,JMS这些差不多,这里不过多累述。 2.场景 所支持订阅的场景有如下,以告警通知为例,当我…

旅游攻略那个网站做的好可以自己做安卓app的网站

什么是“与非”运算? 要想明白“与非”运算,首先要明白“与”运算和“非”运算。 “与”运算在离散数学中叫做合取式,也就是A和B相同时为1的时候结果才为1,其余情况都为0 下面是“与”运算的真值表 “非”运算在离散数学中叫做否…

杭州高端网站开发网站建设公司.

作者 | 👽来源 | 前端Sharing背景在不同的技术框架背景下,处理更新的手段各不相同,今天我们来探讨一下,主流的前端框架批量处理的方式,和其内部的实现原理。通过今天的学习,你将收获这些内容:主…

商务型网站模板迁西住房和建设管理局网站

Unity学习笔记(零基础到就业)|Chapter01:C#入门 前言一、控制台输入输出语句二、初识变量1.一些好用的tips2.变量声明的固定写法3.变量类型 三、变量的本质1.变量的存储空间2.变量的本质:2进制 四、变量的命名规范1.必须遵守的规则…

网页开发视频教程百度搜索引擎seo

一、概述 Android中,上下文菜单是通过onLongClick(...)事件访问的。在事件触发后显示菜单项。 在使用上下文菜单时,通常在onCreate(...)方法中,先行注册上下文菜单。在实现onCreateContextMenu(...)方法和onContextItemSelected(...)方法。 注…

网站不收录排名会降吗邢台网站制作哪家强

1、玄铁 9 系列概述 玄铁 8 系列 基于C-SKY架构,玄铁 9 系列基于 RISC-V 架构。E 系列为 RISC-V 32 位,C 系列为 RISC-V 64 位。 E902:超低功耗 RSIC-V 架构处理器 E902 采用 2 级极简流水线兼容 RISC-V 架构且对执行效率等方面进行了增强&a…

河南城市建设招标类网站拟定网站优化方案

文章目录 Vue在混合开发中的特点创建MAUI项目创建Vue应用使用element-ui组件库JavaScript和原生代码的交互传递根组件参数从设备调用Javascript代码从Vue页面调用原生代码 读取设备信息项目地址 .NET MAUI结合Vue的混合开发可以使用更加熟悉的Vue的语法代替Blazor语法&#xff…

网站建设的目标有哪些怎样是做网站

快速连接形成稳定的电测试在新能源行业里面是很常见的测试场景,比如说在新能源汽车行业的电池包、电机、电控制器的电性能测试中会有很多高压线束,需要将这些线束和电池包、电控制器、电机与测试设备快速连接在一起进行相关的EOL/DCR测试。 新能源汽车高…

购物网站建设优势网站建设与管理 中职

在前一篇博客中,我们介绍了五个实用的爬虫示例,分别用于新闻文章、图片、电影信息、社交媒体和股票数据的采集。本文将继续探索爬虫的奇妙世界,为你带来五个全新的示例,每个示例都有其独特的用途和功能。 1. Wikipedia数据采集 爬…