申请域名费用/网站优化排名推广

申请域名费用,网站优化排名推广,公司网站建设进度计划书,景观设计公司理念文章目录 前言一、广度优先遍历(BFS)简介1.1 广度优先遍历(BFS)的特点1.2 广度优先遍历(BFS)的要素 二、广度优先遍历(BFS)& 深度优先遍历(DFS)2.1 广度优…

文章目录

  • 前言
  • 一、广度优先遍历(BFS)简介
    • 1.1 广度优先遍历(BFS)的特点
    • 1.2 广度优先遍历(BFS)的要素
  • 二、广度优先遍历(BFS)& 深度优先遍历(DFS)
    • 2.1 广度优先遍历pk深度优先遍历
    • 2.2 BFS & DFS使用场景
    • 2.3 BFS & DFS性能分析
  • 三、广度优先遍历模板
    • 3.1 广度优先遍历伪代码
    • 3.2 广度优先遍历模型图解
    • 3.3 广度优先遍历java模板
    • 3.4 广度优先遍历性能优化方案
  • 四、广度优先遍历取经之路
  • 献给读者


在这里插入图片描述
在这里插入图片描述


前言

探索算法之美:深入浅出广度优先遍历

在数据结构与算法的世界里,图和树无疑是最基础也是最迷人的结构之一。它们不仅构成了计算机科学理论的重要组成部分,而且在实际应用中也无处不在——从搜索引擎、社交网络到路径规划系统,这些技术背后的逻辑都离不开对图和树的有效处理。而在众多用于探索这些结构的方法中,广度优先遍历(Breadth-First Search, BFS)以其简洁而强大的特性脱颖而出,成为解决许多问题的关键。

在这个快节奏的信息时代,理解如何高效地搜索和解析复杂的数据结构变得尤为重要。无论你是正在寻找最佳路线的旅行者,还是致力于优化数据库查询的开发者,掌握BFS都能为你提供一种全新的视角和工具集。本篇博客旨在通过通俗易懂的语言和生动的例子,带你走进广度优先遍历的奇妙世界,揭开它那看似神秘却极具实用价值的面纱。

接下来的内容中,我们将一起探讨BFS的核心概念、工作原理及其应用场景。此外,我们还将通过具体的代码实现,展示如何将这一强大的算法应用于实际问题之中。不管你是编程新手,还是经验丰富的工程师,相信这篇文章都能给你带来新的启示和思考。让我们一起开始这段精彩的旅程吧!

一、广度优先遍历(BFS)简介

广度优先遍历(Breadth First Search, BFS),是一种用于图和树的遍历算法。它从根节点(选择某个任意节点作为根节点在图的情况下)开始,首先访问这个节点,然后依次访问该节点的所有直接相邻节点,再以这些相邻节点为中心,继续访问它们的未访问过的直接相邻节点,以此类推,直到所有节点都被访问过为止。

广度优先遍历的特点是逐层探索:先访问距离起始节点最近的一层节点,然后再访问距离为两层的节点,依此类推,直到访问到目标节点或整个图被遍历完毕。这种遍历方式类似于水波扩展的方式,因此得名“广度优先”。

在实现上,广度优先遍历通常使用队列(Queue)数据结构来辅助完成。初始时将起始节点加入队列中,然后进入循环过程,在每次循环中,从队列头部取出一个节点进行访问,并将其所有未被访问过的邻接节点加入队列尾部。这样可以确保按照层次顺序访问节点。

广度优先遍历的时间复杂度取决于图的表示方法。如果使用邻接矩阵表示图,时间复杂度为O(n^2),其中n是节点数;如果使用邻接表表示图,时间复杂度为O(n + e),这里e是边的数量。空间复杂度通常是O(n),因为每个节点都会被加入队列一次。

1.1 广度优先遍历(BFS)的特点

广度优先遍历(Breadth First Search, BFS)具有以下几个显著特点:

  1. 逐层探索:广度优先遍历从起始节点开始,首先访问所有距离起始节点最近的节点(即直接相连的邻居),然后再访问这些邻居的未访问邻居,依此类推。这种遍历方式确保了先访问离起始节点较近的节点,再访问较远的节点,类似于一层一层地向外扩展。
  2. 使用队列结构:为了实现这一层次遍历的特点,BFS通常使用队列(Queue)这种数据结构来辅助完成。初始时将起始节点加入队列中,然后进入循环过程,在每次循环中,从队列头部取出一个节点进行访问,并将其所有未被访问过的邻接节点加入队列尾部。
  3. 寻找最短路径:在无权图(即边没有权重或每条边的权重都相同的情况下),广度优先遍历可以用于寻找从起始节点到目标节点的最短路径。这是因为它按照距离的远近依次访问节点,最先到达目标节点的路径一定是路径长度最短的。
  4. 空间复杂度较高:由于需要存储所有已经访问但尚未处理的节点,以及为了防止重复访问而记录的所有已访问节点的信息,BFS的空间复杂度相对较高。在最坏情况下,空间需求与图中的节点数成正比,特别是在接近满图(几乎每个节点都与其他大多数节点相连)的情况下。
  5. 适用于非加权图的搜索问题:虽然BFS主要用于非加权图中的搜索任务,但它也是许多其他算法的基础,例如在解决迷宫问题、网络路由协议等方面都有应用。

1.2 广度优先遍历(BFS)的要素

广度优先遍历(Breadth First Search, BFS)有几个关键要素,这些要素共同作用以确保算法能够正确且高效地执行。以下是BFS的主要要素:

  1. 队列(Queue):这是BFS的核心数据结构之一,用于按照“先进先出”(FIFO)的原则存储待访问的节点。通过队列,算法可以实现逐层探索图或树的结构,即先访问距离起始节点最近的一层节点,再依次向外扩展。
  2. 访问标记(Visited Set/Array):为了避免重复访问同一个节点而陷入循环,在遍历过程中需要记录哪些节点已经被访问过。通常使用一个集合(Set)或者数组来保存所有已经访问过的节点信息。
  3. 图的表示:BFS的效果和效率与图的表示方法密切相关。常见的图表示方法包括邻接矩阵和邻接表。邻接矩阵适用于稠密图,但空间消耗较大;邻接表则更适用于稀疏图,能够节省空间并提高遍历效率。
  4. 起点的选择:在开始执行BFS之前,必须选择一个起始节点作为遍历的起点。对于连通图来说,选择哪个节点作为起点可能影响到首次发现特定目标节点的时间,但对于整个图的遍历过程来说,这个选择不会影响最终的结果。
  5. 处理逻辑:当从队列中取出一个节点进行处理时,需要定义如何处理该节点的数据或状态。这取决于具体的应用场景,比如寻找最短路径、连通分量分析等。

二、广度优先遍历(BFS)& 深度优先遍历(DFS)

深度优先遍历作为广度优先遍历的’兄弟’,自然是要较量一番。

2.1 广度优先遍历pk深度优先遍历

特性深度优先遍历 (DFS)广度优先遍历 (BFS)
数据结构栈(Stack)或递归队列(Queue)
访问顺序尽可能深入地访问节点逐层访问节点
主要应用寻找连通分量、拓扑排序、解决迷宫问题等寻找最短路径(无权图)、层级遍历
空间复杂度O(V),但实际取决于图的形状,可能会更高O(V),其中V是顶点的数量
时间复杂度O(V + E),其中V是顶点数,E是边数O(V + E),其中V是顶点数,E是边数
回溯可能需要回溯以确保所有节点都被访问不需要回溯
适合场景适用于探索所有分支的情况更适合寻找最近的目标节点

2.2 BFS & DFS使用场景

广度优先遍历(Breadth First Search, BFS)和深度优先遍历(Depth First Search, DFS)都是图和树结构中常用的遍历算法,但它们适用于不同的场景。以下是两者在不同使用场景中的应用:

广度优先遍历(BFS)的使用场景

  1. 寻找最短路径:在无权图中寻找从一个节点到另一个节点的最短路径时,BFS是一个理想的选择。由于它是逐层探索,最先找到的目标节点一定是到达目标的最短路径。
  2. 连通分量分析:当需要确定图中所有节点是否连通,或者找出图的所有连通分量时,BFS可以有效地遍历整个图或其部分。
  3. 社交网络:在社交网络中查找距离某人“几步之遥”的朋友或关系圈,BFS非常适合这种层级式扩展的需求。
  4. 垃圾回收:在某些内存管理系统中,如标记-清除垃圾回收算法,BFS用于追踪对象引用以决定哪些对象是可以被回收的。

深度优先遍历(DFS)的使用场景

  1. 拓扑排序:在有向无环图(DAG)中进行拓扑排序时,DFS是一个常用的方法。它能够有效地生成任务调度顺序等。
  2. 迷宫问题与解谜游戏:DFS适合于解决迷宫类问题或解谜游戏,其中需要探索尽可能多的路径直到找到解决方案。
  3. 连通性和循环检测:DFS可用于检测图中是否存在循环,以及确定无向图或有向图中的连通分量。
    深度相关的问题:当问题涉及到搜索树的深度,比如限制搜索深度的启发式搜索,DFS及其变体(如迭代加深深度优先搜索)非常有用。
  4. 地图着色问题:在尝试为地图着色时,DFS可以帮助探索所有可能的颜色分配方案,以确保相邻区域颜色不同。

💡贴士:选择BFS还是DFS取决于具体的应用需求。如果问题是关于寻找最短路径或需要按层次访问节点,则BFS通常是更好的选择;而如果是关于探索所有可能性、深度相关的搜索或需要对图进行深度优先探索时,DFS则更为合适。此外,DFS还特别适合那些需要回溯的情况。

2.3 BFS & DFS性能分析

广度优先遍历(Breadth First Search, BFS)和深度优先遍历(Depth First Search, DFS)在性能方面各有特点,主要体现在时间复杂度、空间复杂度以及对特定问题的适应性上。以下是它们之间的性能比较:

时间复杂度

  • BFS:在最坏情况下,BFS需要访问图中的每个节点和每条边一次。因此,其时间复杂度为O(V + E),其中V是顶点的数量,E是边的数量。
  • DFS:同样地,DFS也需要访问图中的每个节点和每条边一次,所以它的时间复杂度也是O(V + E)。
    从时间复杂度的角度来看,两者在处理图时具有相同的效率,都取决于图的规模(即顶点数和边数)。

空间复杂度

  • BFS:由于BFS使用队列来存储待探索的节点,并且在最坏情况下需要同时存储几乎所有的节点(例如,在一个完全二叉树中),其空间复杂度为O(V)。此外,如果图非常稠密(边很多),则可能需要额外的空间来存储图本身。
  • DFS:DFS可以递归实现或使用显式栈实现。对于递归版本,最坏情况下的空间复杂度取决于递归调用栈的深度,这在最坏情况下(如线性链表状的图)可能是O(V)。对于非递归版本,使用的显式栈也可能达到O(V)的空间复杂度。然而,在稀疏图中,实际使用的空间通常会少于BFS。
    对特定问题的适应性
  • BFS:最适合用于寻找无权图中的最短路径问题,因为它能确保最先到达目标节点的路径是最短的。此外,BFS也非常适合需要按层次探索的应用场景,比如社交网络分析中的“几步之遥”朋友查找。
  • DFS:更适合解决那些需要探索所有可能性的问题,比如迷宫问题、解谜游戏等。DFS及其变体(如迭代加深的DFS)在搜索深度受限的情况下特别有用。另外,DFS非常适合用来检测图中的循环和进行拓扑排序。

💡贴士:选择BFS还是DFS取决于具体应用场景的需求。如果问题是关于寻找最短路径或需要按层次访问节点,则BFS通常是更好的选择;而如果是关于探索所有可能性、深度相关的搜索或需要对图进行深度优先探索时,DFS则更为合适。在空间利用方面,BFS可能会使用更多的内存,特别是在处理大型图时,而DFS可能因为递归深度限制而在某些编程环境中遇到堆栈溢出的问题。因此,在考虑算法性能时,不仅要看时间复杂度,还需要综合考虑空间复杂度和具体的使用场景。

三、广度优先遍历模板

3.1 广度优先遍历伪代码

BFS(G, start_vertex):// G 是图,start_vertex 是遍历的起始顶点let queue be a new Queue  // 创建一个空队列let visited be a new Set  // 创建一个用于记录已访问节点的集合queue.enqueue(start_vertex)  // 将起始顶点加入队列visited.add(start_vertex)    // 标记起始顶点为已访问while queue is not empty:    // 当队列不为空时循环current_vertex = queue.dequeue()  // 从队列中取出一个顶点visit(current_vertex)            // 访问该顶点(根据实际情况定义visit函数)for each neighbor in G.adjacentVertices(current_vertex):  // 遍历当前顶点的所有邻居if neighbor is not in visited:  // 如果邻居未被访问queue.enqueue(neighbor)     // 将邻居加入队列visited.add(neighbor)       // 标记邻居为已访问

3.2 广度优先遍历模型图解

  1. 初始状态:
    在这里插入图片描述

  2. 访问A:
    在这里插入图片描述

  3. A节点左右节点入队:
    在这里插入图片描述

  4. 访问B:
    在这里插入图片描述

  5. 访问C:
    在这里插入图片描述

  6. 访问D:
    在这里插入图片描述

  7. 访问E:
    在这里插入图片描述

  8. 访问F:
    在这里插入图片描述

  9. 访问G:
    在这里插入图片描述

  10. 队列为空,结束。

3.3 广度优先遍历java模板

首先定义二叉树:

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}
}

广度优先遍历实现:

import java.util.LinkedList;
import java.util.Queue;public class BinaryTreeBFS {public void bfs(TreeNode root) {if (root == null) return; // 如果根节点为空,则直接返回Queue<TreeNode> queue = new LinkedList<>();queue.add(root); // 将根节点加入队列while (!queue.isEmpty()) {TreeNode current = queue.poll(); // 从队列中取出第一个节点System.out.print(current.val + " "); // 访问当前节点// 如果左子节点不为空,则将其加入队列if (current.left != null) {queue.add(current.left);}// 如果右子节点不为空,则将其加入队列if (current.right != null) {queue.add(current.right);}}}public static void main(String[] args) {// 构建一个简单的二叉树TreeNode root = new TreeNode(1);root.left = new TreeNode(2);root.right = new TreeNode(3);root.left.left = new TreeNode(4);root.left.right = new TreeNode(5);root.right.right = new TreeNode(6);BinaryTreeBFS bfsExample = new BinaryTreeBFS();bfsExample.bfs(root); // 执行广度优先遍历}
}

3.4 广度优先遍历性能优化方案

优化二叉树广度优先搜索(Breadth First Search, BFS)的性能可以从多个方面入手,包括数据结构的选择、算法逻辑的优化以及内存管理等。以下是一些常见的优化策略:

  1. 数据结构选择
    使用合适的队列实现:在Java中,LinkedList作为队列使用时虽然可以工作,但其在插入和删除操作上的效率可能不如专门设计的队列类。考虑使用ArrayDeque作为队列,它提供了更高效的队列操作。
Queue<TreeNode> queue = new ArrayDeque<>();
  1. 减少不必要的对象创建
    避免频繁创建对象:在循环内部尽量减少新对象的创建。例如,在遍历过程中,如果某些临时变量可以在方法外部定义,则应将其移到循环外以减少开销。
  2. 避免重复计算
    缓存重复计算的结果:如果在遍历过程中需要多次计算相同的结果(如节点的深度),可以考虑预先计算并存储这些结果,而不是每次访问都重新计算。
  3. 并行处理
    利用多线程并行化处理:对于非常大的二叉树,可以尝试将不同层次或部分子树的遍历任务分配给不同的线程来执行。然而,需要注意的是,并行化可能会引入额外的复杂性和同步开销,因此需谨慎评估是否能带来实际性能提升。
  4. 空间优化
    原地修改:如果允许修改原始数据结构,可以直接在二叉树的节点上标记已访问状态,从而节省用于跟踪访问状态的额外空间。
  5. 特定场景下的优化
    针对特定形状的树进行优化:如果你知道你的二叉树具有某种特殊结构(比如完全二叉树),你可以根据这种结构的特点进一步优化算法。例如,在完全二叉树中,可以通过数学公式直接计算出某个节点的左右子节点位置,而不需要通过指针追踪。

四、广度优先遍历取经之路

  1. **最短路径问题:**对于无权图(即边没有权重),BFS可以找到从起点到目标点的最短路径(这里的“最短”指的是最少的边数)。这是因为BFS会按照距离起点的层次逐层向外扩展,所以最先到达目标点的路径一定是最短的。
  2. **连通分量计算:**在无向图中,BFS可用于查找所有的连通分量。通过从每个尚未访问的节点开始执行BFS,我们可以识别出整个图中的所有连通部分。
  3. **二部图检测:**BFS也可用于判断一个图是否为二部图(即可以将图中的所有节点分成两个集合,使得每条边都连接着这两个集合中的各一个节点)。这通常通过给节点上色来实现,相邻节点必须有不同的颜色。
  4. **拓扑排序(有限制):**虽然深度优先搜索(DFS)更常用作拓扑排序的基础,但在某些情况下,也可以使用BFS来实现,特别是在处理有向无环图(DAG)时。
  5. **网络广播:**在网络应用中,比如局域网上的消息广播,可以从源节点开始使用BFS将信息传递给网络中的所有其他节点。
  6. **垃圾回收:**在一些垃圾回收算法中,BFS被用来追踪对象引用图中的可达对象。
  7. 社交网络分析:在社交网络中,BFS可以用来寻找两个人之间的最短关系链,或者找出某个人的直接朋友、朋友的朋友等。
  8. **迷宫问题:**在解决迷宫问题时,BFS能够找到从入口到出口的最短路径。
  9. 网页抓取:搜索引擎爬虫可能使用BFS策略来系统地探索互联网上的页面链接,确保优先抓取更接近起始页面的内容。

献给读者


💯 计算机技术的世界浩瀚无垠,充满了无限的可能性和挑战,它不仅是代码与算法的交织,更是梦想与现实的桥梁。无论前方的道路多么崎岖不平,希望你始终能保持那份初心,专注于技术的探索与创新,用每一次的努力和进步书写属于自己的辉煌篇章。

🏰在这个快速发展的数字时代,愿我们都能成为推动科技前行的中坚力量,不忘为何出发,牢记心中那份对技术执着追求的热情。继续前行吧,未来属于那些为之努力奋斗的人们。


亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


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

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

相关文章

CPP从入门到入土之类和对象Ⅱ

一、六大默认成员函数 默认成员函数是用户没有显式实现&#xff0c;编译器自动生成的成员函数。 一个类&#xff0c;我们在不写的情况下&#xff0c;编译器会默认生成六个默认成员函数 本文详细介绍构造函数和析构函数 二、构造函数 构造函数虽名为构造函数&#xff0c;但是…

【华三】路由器交换机忘记登入密码或super密码的重启操作

【华三】路由器交换机忘记登入密码或super密码的重启操作 背景步骤跳过认证设备&#xff1a;路由器重启设备翻译说明具体操作 跳过当前系统配置重启设备具体操作 背景 当console口的密码忘记&#xff0c;或者说本地用户的密码忘记&#xff0c;其实这时候是登入不了路由器的&am…

视图窗口的客户区

书籍&#xff1a;《Visual C 2017从入门到精通》的2.4.2 MFC应用程序类型 环境&#xff1a;visual studio 2022 内容&#xff1a;【例2.38】视图窗口的客户区 说明&#xff1a;以下内容大部分来自腾讯元宝。 1.创建一个单文档程序 一个简单的单文档程序-CSDN博客https://bl…

MySQL原理:逻辑架构

目的&#xff1a;了解 SQL执行流程 以及 MySQL 内部架构&#xff0c;每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层&#xff1a;连接层 3.1 数据库连接池(Conn…

当前企业使用VPN面临的不足和挑战

VPN的防护理念无法满足数字化转型的需求 古人云&#xff1a;知己知彼&#xff0c;百战不殆&#xff0c;既然要替换VPN&#xff0c;就要先了解VPN。VPN于1996年起源&#xff0c;98年首次在我国出现&#xff0c;历经25年的持续演进&#xff0c;直到现在依然广泛流行。VPN的起源背…

python中ord()和chr()转化ASCII数值+解密字符串例题

1.ASCII码简介 ASCII 即美国信息交换标准代码&#xff08;American Standard Code for Information Interchange&#xff09;&#xff0c;是基于拉丁字母的一套电脑编码系统&#xff0c;主要用于显示现代英语和其他西欧语言。 发展历程&#xff1a;ASCII 码于 1963 年首次发布…

AMBA-CHI协议详解(二十五)

AMBA-CHI协议详解&#xff08;一&#xff09;- Introduction AMBA-CHI协议详解&#xff08;二&#xff09;- Channel fields / Read transactions AMBA-CHI协议详解&#xff08;三&#xff09;- Write transactions AMBA-CHI协议详解&#xff08;四&#xff09;- Other transac…

Web 小项目: 网页版图书管理系统

目录 最终效果展示 代码 Gitee 地址 1. 引言 2. 留言板 [热身小练习] 2.1 准备工作 - 配置相关 2.2 创建留言表 2.3 创建 Java 类 2.4 定义 Mapper 接口 2.5 controller 2.6 service 3. 图书管理系统 3.1 准备工作 - 配置相关 3.2 创建数据库表 3.2.1 创建用户表…

C语言每日一练——day_7

引言 针对初学者&#xff0c;每日练习几个题&#xff0c;快速上手C语言。第七天。&#xff08;连续更新中&#xff09; 采用在线OJ的形式 什么是在线OJ&#xff1f; 在线判题系统&#xff08;英语&#xff1a;Online Judge&#xff0c;缩写OJ&#xff09;是一种在编程竞赛中用…

ArcGIS10. 8简介与安装,附下载地址

目录 ArcGIS10.8 1. 概述 2. 组成与功能 3. 10.8 特性 下载链接 安装步骤 1. 安装准备 2. 具体步骤 3.补丁 其他版本安装 ArcGIS10.8 1. 概述 ArcGIS 10.8 是由美国 Esri 公司精心研发的一款功能强大的地理信息系统&#xff08;GIS&#xff09;平台。其核心功能在于…

Mac:JMeter 下载+安装+环境配置(图文详细讲解)

&#x1f4cc; 下载JMeter 下载地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi &#x1f4cc; 无需安装 Apache官网下载 JMeter 压缩包&#xff0c;无需安装&#xff0c;下载解压后放到自己指定目录下即可。 按我自己的习惯&#xff0c;我会在用户 jane 目…

【PCB工艺】基础:电子元器件

电子原理图&#xff08;Schematic Diagram&#xff09;是电路设计的基础&#xff0c;理解电子元器件和集成电路&#xff08;IC&#xff09;的作用&#xff0c;是画好原理图的关键。 本专栏将系统讲解 电子元器件分类、常见 IC、电路设计技巧&#xff0c;帮助你快速掌握电子电路…

nvm 安装某个node.js版本后不能使用或者报错,或不能使用npm的问题

安装了nvm之后发现不能使用某个版本的node.js&#xff0c;报错之后&#xff0c;不能使用npm这个命令。可以这样解决&#xff1a; 1、再node.js官网直接下载node.js 的压缩包。 找到nvm的安装目录 2、直接将文件夹解压到这个安装目录中修改一下名字即可。

【MySQL数据库】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中&#xff0c;我们已经学过了多表查询的一种&#xff1a;联合查询&#xff08;union&#xff09;。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先&#xff0c;我们想要查询emp表和stu表两个表&#xff0c;按照我们之前的知识栈&#xff0c;我们直接使用…

Java:Apache HttpClient中HttpRoute用法的介绍

当使用Apache HttpClient组件时&#xff0c;经常会用到它的连接池组件。典型的代码如下&#xff1a; PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…

RHCE(RHCSA复习:npm、dnf、源码安装实验)

七、软件管理 7.1 rpm 安装 7.1.1 挂载 [rootlocalhost ~]# ll /mnt total 0 drwxr-xr-x. 2 root root 6 Oct 27 21:32 hgfs[rootlocalhost ~]# mount /dev/sr0 /mnt #挂载 mount: /mnt: WARNING: source write-protected, mounted read-only. [rootlocalhost ~]# [rootlo…

【css酷炫效果】纯CSS实现故障文字特效

【css酷炫效果】纯CSS实现故障文字特效 缘创作背景html结构css样式完整代码基础版进阶版(3D效果) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492053 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚…

uniapp配置代理解决跨域问题

两种方式&#xff1a; 1、manifest.json中配置 "h5" : {"template" : "static/index.html","devServer" : {"port" : 9090,"https" : false,"proxy":{"/prod-api":{"target":&quo…

物联网为什么用MQTT不用 HTTP 或 UDP?

先来两个代码对比&#xff0c;上传温度数据给服务器。 MQTT代码示例 // MQTT 客户端连接到 MQTT 服务器 mqttClient.connect("mqtt://broker.server.com:8883", clientId) // 订阅特定主题 mqttClient.subscribe("sensor/data", qos1) // …

Flutter:页面滚动,导航栏背景颜色过渡动画

记录&#xff1a;导航默认透明&#xff0c;页面发生滚动后&#xff0c;导航背景色由0-1&#xff0c;过渡到白色背景。 view import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:redo…