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

冒泡排序(Bubble Sort)详细教程:Java实现与优化

一、什么是冒泡排序?

冒泡排序(Bubble Sort)是一种简单的排序算法,它的基本思想是通过两两比较相邻元素,将较大的元素“冒泡”到数列的末尾。每一轮遍历会将一个较大的元素放到正确的位置,直到整个数组有序。

冒泡排序的基本思想:
  1. 从数列的起始位置开始,依次比较相邻的元素。
  2. 如果前一个元素大于后一个元素,则交换它们的位置。
  3. 一轮遍历结束后,最大的元素会“冒泡”到数列的末尾。
  4. 重复上述过程,直到整个数列有序。

二、冒泡排序的工作原理

假设有一个数组 [64, 34, 25, 12, 22, 11],我们使用冒泡排序对其进行排序。以下是每个步骤的详细描述:

第一轮遍历:
  • 比较 6434,发现 64 > 34,所以交换它们,数组变为 [34, 64, 25, 12, 22, 11]
  • 比较 6425,发现 64 > 25,交换它们,数组变为 [34, 25, 64, 12, 22, 11]
  • 比较 6412,发现 64 > 12,交换它们,数组变为 [34, 25, 12, 64, 22, 11]
  • 比较 6422,发现 64 > 22,交换它们,数组变为 [34, 25, 12, 22, 64, 11]
  • 比较 6411,发现 64 > 11,交换它们,数组变为 [34, 25, 12, 22, 11, 64]

经过一轮遍历,最大的数 64 已经被排到了数组的末尾。

第二轮遍历:
  • 比较 3425,发现 34 > 25,交换它们,数组变为 [25, 34, 12, 22, 11, 64]
  • 比较 3412,发现 34 > 12,交换它们,数组变为 [25, 12, 34, 22, 11, 64]
  • 比较 3422,发现 34 > 22,交换它们,数组变为 [25, 12, 22, 34, 11, 64]
  • 比较 3411,发现 34 > 11,交换它们,数组变为 [25, 12, 22, 11, 34, 64]

经过第二轮遍历,第二大的数 34 被排到了倒数第二个位置。

第三轮遍历:
  • 比较 2512,发现 25 > 12,交换它们,数组变为 [12, 25, 22, 11, 34, 64]
  • 比较 2522,发现 25 > 22,交换它们,数组变为 [12, 22, 25, 11, 34, 64]
  • 比较 2511,发现 25 > 11,交换它们,数组变为 [12, 22, 11, 25, 34, 64]

经过第三轮遍历,第三大的数 25 被排到了倒数第三个位置。

三、Java实现冒泡排序

下面是冒泡排序的 Java 代码实现:

public class BubbleSort {// 冒泡排序算法public static void bubbleSort(int[] arr) {int n = arr.length;// 外层循环控制遍历次数for (int i = 0; i < n - 1; i++) {// 内层循环进行相邻元素的比较和交换for (int j = 0; j < n - 1 - i; j++) {// 比较相邻元素,若前者大于后者则交换if (arr[j] > arr[j + 1]) {// 交换位置int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}// 打印数组public static void printArray(int[] arr) {for (int num : arr) {System.out.print(num + " ");}System.out.println();}public static void main(String[] args) {int[] arr = {64, 25, 12, 22, 11};System.out.println("原始数组:");printArray(arr);bubbleSort(arr);System.out.println("排序后的数组:");printArray(arr);}
}

四、冒泡排序的优化

虽然冒泡排序简单易懂,但它在效率上不够理想,尤其在数组较大时,性能表现较差。优化冒泡排序的方法之一是引入一个标志位 swapped 来判断是否发生了交换。

优化后的冒泡排序:
public class OptimizedBubbleSort {public static void bubbleSort(int[] arr) {int n = arr.length;// 外层循环控制遍历次数for (int i = 0; i < n - 1; i++) {boolean swapped = false;// 内层循环进行相邻元素的比较和交换for (int j = 0; j < n - 1 - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;swapped = true;}}// 如果没有发生交换,提前终止if (!swapped) {break;}}}public static void printArray(int[] arr) {for (int num : arr) {System.out.print(num + " ");}System.out.println();}public static void main(String[] args) {int[] arr = {64, 25, 12, 22, 11};System.out.println("原始数组:");printArray(arr);bubbleSort(arr);System.out.println("排序后的数组:");printArray(arr);}
}

通过使用 swapped 标志位,在某一轮遍历没有发生交换时,我们可以提前终止排序过程,从而避免不必要的遍历,提升性能。

五、时间复杂度与空间复杂度分析

时间复杂度:
  • 最坏情况: 当输入数组是倒序排列时,每一轮内层循环都需要进行交换。总的比较次数为 O(n2)O(n^2)O(n2),所以时间复杂度为 O(n2)O(n^2)O(n2)。
  • 最好情况: 当输入数组已经是有序时,优化后的冒泡排序会提前终止,时间复杂度为 O(n)O(n)O(n)。
  • 平均情况: 对于无序数组,时间复杂度通常是 O(n2)O(n^2)O(n2)。
空间复杂度:

冒泡排序是一种原地排序算法,因此其空间复杂度为 O(1)O(1)O(1)。

六、总结

冒泡排序是一种简单易懂的排序算法,适用于小规模数据的排序。在处理大规模数据时,性能较差,因此在实际应用中我们更倾向于使用快速排序、归并排序等更高效的算法。尽管如此,冒泡排序仍然是理解排序算法的一个重要起点。

版权声明
  1. 本文内容属于原创,欢迎转载,但请务必注明出处和作者,尊重原创版权。
  2. 转载时,请附带原文链接并注明“本文作者:扣丁梦想家
  3. 禁止未经授权的商业转载。

如果您有任何问题或建议,欢迎留言讨论。

相关文章:

冒泡排序(Bubble Sort)详细教程:Java实现与优化

一、什么是冒泡排序&#xff1f; 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它的基本思想是通过两两比较相邻元素&#xff0c;将较大的元素“冒泡”到数列的末尾。每一轮遍历会将一个较大的元素放到正确的位置&#xff0c;直到整个数组有序…...

【git】【reset全解】Git 回到上次提交并处理提交内容的不同方式

Git 回到上次提交并处理提交内容的不同方式 在 Git 中&#xff0c;若要回到上次提交并对提交内容进行不同处理&#xff0c;可使用 git reset 命令搭配不同选项来实现。以下为你详细介绍操作步骤及各选项的作用。 1. 查看提交历史 在操作之前&#xff0c;可通过以下命令查看提…...

矩阵的 正定(Positive Definite)与负定(Negative Definite):从Fisher信息矩阵看“曲率”的秘密

矩阵的正定与负定&#xff1a;从Fisher信息矩阵看“曲率”的秘密 在数学和统计学中&#xff0c;矩阵的“正定性”和“负定性”是一对重要概念&#xff0c;尤其在优化、统计推断和机器学习中频繁出现。比如&#xff0c;Fisher信息矩阵&#xff08;Fisher Information Matrix, F…...

Uniapp 小程序:语音播放与暂停功能的实现及优化方案

界面部分 //开启语音 <button class"open" v-if"showPlayfalse" click"playText">这是开启播放的图片</button >//关闭语音 <button class"close" v-if"showPlaytrue" click"stopText">这是…...

Python基于机器学习的微博舆情情感分析系统,微博评论情感分析可视化系统(全新升级)

大家好&#xff0c;今天为大家带来的是Python基于机器学习的微博舆情情感分析系统&#xff0c;微博评论情感分析可视化系统&#xff0c;这个系统在原本的系统上进行优化升级。 算法从开源框架的 snlow &#xff0c;到支持机器学习的 lstm 算法可以手动输入语句&#xff0c;进行…...

IP-------GRE和MGRE

4.GRE和MGRE 1.应用场景 现实场景 居家工作&#xff0c;公司工作&#xff0c;分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT&#xff08;不安全&#xff09; 为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技…...

内网综合渗透测试——WinterMute: 1靶场

靶场来源 <WinterMute: 1 ~ VulnHub> Wintermute 虚拟机网络配置指南 本实验涉及网络跳转技术&#xff0c;需正确配置VirtualBox网络。所有IP均为动态分配&#xff0c;配置快速简便。 通过"文件 >> 导入虚拟设备"导入各虚拟机。 STRAYLIGHT (网络#1 和 …...

项目进度管理工具:甘特图与关键路径法(2025实战指南)

在全球数字化转型加速的背景下&#xff0c;项目延期率高达42%的现状倒逼管理者掌握科学的进度管理工具。本文结合2025年最新实践&#xff0c;深度解析甘特图与关键路径法的原理及应用&#xff0c;助你构建精准可控的项目进度管理体系。 一、双剑合璧&#xff1a;工具组合的价值…...

deepseek-r1-centos-本地服务器配置方法

参考&#xff1a; 纯小白 Centos 部署DeepSeek指南_centos部署deepseek-CSDN博客 https://blog.csdn.net/xingxin550/article/details/145574080 手把手教大家如何在Centos7系统中安装Deepseek&#xff0c;一文搞定_centos部署deepseek-CSDN博客 https://blog.csdn.net/soso67…...

C# Unity 唐老狮 No.2 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…...

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格&#xff0c;用于比较Flask中的…...

SpringBoot整合Mybatis-Plus+Druid实现多数据源

概述 Spring Boot&#xff1a; Spring Boot是一个基于Spring框架的开源Java开发框架&#xff0c;旨在简化Spring应用程序的开发、配置和部署。它提供了一种快速、敏捷的方式来构建独立的、生产级别的Spring应用程序&#xff0c;同时还提供了许多开箱即用的功能和工具&#xff0…...

【Mysql】我在广州学Mysql 系列—— 性能优化相关例题

ℹ️大家好&#xff0c;我是练小杰&#xff0c;时间过得真快&#xff0c;还有2天&#xff0c;2025年2月份就结束了&#xff01;&#xff01;&#x1f606; 本文是针对Mysql数据库中有关性能优化的相关示例&#xff0c;通过本文的学习可以深入了解性能优化的各类命令&#xff01…...

罗成华教授论腹膜后肿瘤核磁共振检查意义

腹膜后器官很少受生理运动的影响&#xff0c;而MRI又可进行除横断面以外的冠状面、矢状面或其它任意切面检查&#xff0c;其图像清晰&#xff0c;故其特别适用于腹膜后肿瘤的术前检查。早期经验显示MRI可提供比&#xff23;&#xff34;更多的信息&#xff0c;不用造影剂术前即…...

CSS3 圆角:实现与优化指南

CSS3 圆角&#xff1a;实现与优化指南 随着网页设计的发展&#xff0c;CSS3 圆角已经成为了现代网页设计中不可或缺的元素之一。本文将详细讲解 CSS3 圆角的基本用法、实现方式以及优化技巧&#xff0c;帮助您在网页设计中更好地运用这一功能。 一、CSS3 圆角基本用法 1.1 基…...

Windows下不建议使用C/C++运行库的本地化功能

Windows不建议setlocale或使用C的std::locale对象等C/C运行库的本地化功能&#xff0c;因为setlocale或C的std::locale对象实现bug多&#xff0c;不稳定&#xff0c;可能存在兼容性问题&#xff0c;如&#xff1a; 1、DOS/Win16下setlocale只支持"C"的locale 2、Wi…...

python-leetcode-乘积最大子数组

152. 乘积最大子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution:def maxProduct(self, nums: List[int]) -> int:if not nums:return 0max_prod nums[0]min_prod nums[0]result nums[0]for i in range(1, len(nums)):if nums[i] < 0:max_prod, min_prod…...

基于YOLO11深度学习的半导体芯片缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

Python入门 — 类

面向对象编程中&#xff0c;编写表示现实世界中的事物和情景的类&#xff08;class&#xff09;&#xff0c;并基于这些类来创建对象&#xff08;object&#xff09;。根据类来创建对象称为实例化&#xff0c;这样就可以使用类的实例&#xff08;instance&#xff09; 一、创建…...

本地大模型编程实战(22)用langchain实现基于SQL数据构建问答系统(1)

使 LLM(大语言模型) 系统能够查询结构化数据与非结构化文本数据在性质上可能不同。后者通常生成可在向量数据库中搜索的文本&#xff0c;而结构化数据的方法通常是让 LLM 编写和执行 DSL&#xff08;例如 SQL&#xff09;中的查询。 我们将演练在使用基于 langchain 链 &#x…...

监听其他音频播放时暂停正在播放的音频

要实现当有其他音频播放时暂停当前音频&#xff0c;你可以使用全局事件总线或 Vuex 来管理音频播放状态。这里我将展示如何使用一个简单的事件总线来实现这个功能。 首先&#xff0c;你需要创建一个事件总线。你可以在项目的一个公共文件中创建它&#xff0c;例如 eventBus.js…...

Docker数据卷操作实战

什么是数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录&#xff0c;它绕过 UFS&#xff0c;可以提供很多有用的特性: 数据卷 可以在容器之间共享和享用对 数据卷 的修改立马生效对 数据卷 的更新&#xff0c;不会影响镜像数据卷 默认会一直存在&#xff0c;即时容器被…...

Go中slice和map引用传递误区

背景 关于slice和map是指传递还是引用传递&#xff0c;很多文章都分析得模棱两可&#xff0c;其实在Go中只有值传递&#xff0c;但是很多情况下是因为分不清slice和map的底层实现&#xff0c;所以导致很多人在这一块产生疑惑&#xff0c;下面通过代码案例分析slice和map到底是…...

代码审计入门学习

简介 HadSky轻论坛程序为个人原创PHP系统&#xff0c;作者为蒲乐天&#xff0c;后端基于puyuetianPHP框架驱动&#xff0c;前端基于 puyuetianUI框架驱动&#xff0c;默认编辑器为puyuetianEditor富文本编辑器&#xff0c;其他非原创框架及驱动JQuery.js 及Font-Awesome字体库…...

排序算法(3):

这是我们的最后一篇排序算法了&#xff0c;也是我们的初阶数据结构的最后一篇了。 我们来看&#xff0c;我们之前已经讲完了插入排序&#xff0c;选择排序&#xff0c;交换排序&#xff0c;我们还剩下最后一个归并排序&#xff0c;我们今天就讲解归并排序&#xff0c;另外我们还…...

AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构

前言 人工智能技术的爆发式发展催生了多样化的AI模型生态&#xff0c;从通用对话到垂直领域应用&#xff0c;从数据挖掘到创意生成&#xff0c;各模型凭借其独特的技术优势与场景适配性&#xff0c;正在重塑全球产业格局。本文将以DeepSeek、ChatGPT、XAI&#xff08;可解释人…...

服务端配置TCP探活,超出探活时间后的行为?

server端启动 &#xff08;完整源码在最后&#xff09; 配置探活 setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int)); // 空闲60秒后探测setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int)); // 探测间隔10秒…...

Eclipse安装和配置环境教程包含下载、安装、汉化(附安装包)

文章目录 前言一、JDK 安装二、Eclipse IDE 安装三、Eclipse软件汉化&#xff08;可选&#xff09;四、安装完成 前言 在编程的世界里&#xff0c;一款好的开发工具能让效率大幅提升&#xff0c;Eclipse 2024 便是这样的利器。不过&#xff0c;其安装过程涉及 JDK 配置、软件本…...

nginx简单命令启动,关闭等

启动命令 #启动nginx start nginx重启命令 比如修改了配置文件&#xff0c;用这个命令重启生效 #重启nginx nginx -s reload3&#xff0c;查看端口占用 #查看端口占用 netstat -aon4&#xff0c;关闭nginx 如果使用cmd命令窗口启动nginx&#xff0c; 关闭cmd窗口是不能…...

SQL------搭建sql靶场和打开sql靶场及报错解决

搭建sql靶场 1.下载安装包与文件 在官网上下载phpstudy网址&#xff1a; http://www.xp.cn 下载sqli-labs的网址&#xff1a; https://github.com/Audi-1/sqli-labs 2.下载小皮面板 打开安装包 安装&#xff0c;记得改自己想要安装的路径 打开php版本 记得下载5.几的版本&…...

对话式AI引擎:DeepSeek技术引领多模态交互新篇章

摘要 DeepSeek技术公司推出了一项创新服务——“对话式AI引擎”&#xff0c;仅需两行代码即可激活任意大型AI模型的语音对话功能。这项技术使得文本型AI模型迅速转变为具备实时语音对话能力的多模态交互模型&#xff0c;解决了大型AI模型在语音交互方面的不足&#xff0c;为AI行…...

在什么情况下需要使用光谱相机呢?

1.需要捕捉不可见光信息时 光谱相机不仅能捕捉可见光&#xff0c;还能记录红外、紫外等波段的光谱信息。以下场景尤其适用&#xff1a; 环境监测&#xff1a;检测水质、空气污染物等肉眼无法观察的物质。 农业监测&#xff1a;分析植物的近红外反射率&#xff0c;判断作物健…...

nnUNetv2用自己的数据集训练推理

有什么不懂的大家可以在评论区问我&#xff0c;我一定会积极回复哒&#xff01;&#xff01;&#xff01; 一、环境配置 首先创建一个虚拟环境 conda create -n nnunet python3.9 conda activate nnunet 然后在pytorch官网&#xff0c;安装pytorch&#xff0c;这里我安装的是…...

std::thread的同步机制

在 C 中&#xff0c;std::thread 用于创建和管理线程。为了确保多个线程能正确、安全地访问共享资源&#xff0c;避免数据竞争和不一致问题&#xff0c;需要使用同步机制。 互斥锁&#xff08;std::mutex&#xff09; 原理&#xff1a;互斥锁是一种最基本的同步原语&#xff…...

Matplotlib 绘图标记

Matplotlib 绘图标记 引言 Matplotlib 是一个功能强大的 Python 绘图库&#xff0c;广泛用于数据可视化。在 Matplotlib 中&#xff0c;绘图标记&#xff08;markers&#xff09;是数据点在图表中显示的方式。正确的使用绘图标记可以增强图表的可读性和美观性。本文将详细介绍…...

Web3.py 入门笔记

Web3.py 学习笔记 &#x1f4da; 1. Web3.py 简介 &#x1f31f; Web3.py 是一个 Python 库&#xff0c;用于与以太坊区块链进行交互。它就像是连接 Python 程序和以太坊网络的桥梁。 官方文档 1.1 主要功能 查询区块链数据&#xff08;余额、交易等&#xff09;发送交易与…...

《论企业集成平台的理解与应用》审题技巧 - 系统架构设计师

企业集成平台的理解与应用——论文写作框架 一、考点概述 本论题“企业集成平台的理解与应用”主要考察的是计算机软件测试工程师对于企业集成平台&#xff08;EIP&#xff09;的深入理解以及在实际项目中的应用能力。论题涵盖了以下几个核心内容&#xff1a; 首先&#xff…...

IO 和NIO有什么区别?

IO 与 NIO 的区别详解 Java 中的 IO&#xff08;Input/Output&#xff09; 和 NIO&#xff08;New IO 或 Non-blocking IO&#xff09; 是两种不同的输入输出处理机制&#xff0c;主要区别体现在设计模型、性能优化和应用场景上。以下是详细对比&#xff1a; 1. 阻塞与非阻塞模…...

音频进阶学习十六——LTI系统的差分方程与频域分析一(频率响应)

文章目录 前言一、差分方程的有理式1.差分方程的有理分式2.因果系统和ROC3.稳定性与ROC 二、频率响应1.定义2.幅频响应3.相频响应4.群延迟 总结 前言 本篇文章会先复习Z变换的有理分式&#xff0c;这是之前文章中提过的内容&#xff0c;这里会将差分方程和有理分式进行结合来看…...

Nginx面试宝典【刷题系列】

文章目录 1、nginx是如何实现高并发的&#xff1f;2、Nginx如何处理HTTP请求&#xff1f;3、使用“反向代理服务器”的优点是什么?4、列举Nginx服务器的最佳用途。5、Nginx服务器上的Master和Worker进程分别是什么?6、什么是C10K问题?7、请陈述stub_status和sub_filter指令的…...

【语法】C++的string

目录 4个默认成员函数 迭代器 string的扩容&#xff1a; capacity(): reserve(): resize()&#xff1a; 插入与删除&#xff1a; c_str: find()和substr: getline(): 在C语言中&#xff0c;要想存储一串字符&#xff0c;往往用的都是char arr[]&#xff0c;也就是字…...

支持selenium的chrome driver更新到133.0.6943.141

最近chrome释放新版本&#xff1a;133.0.6943.141 如果运行selenium自动化测试出现以下问题&#xff0c;是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…...

【2025.2.25更新】wordpress免费AI插件,文章内容、图片自动生成、视频自动生成、网站AI客服、批量采集文章,内置deepseek联网满血版

wordpress免费AI插件&#xff0c;文章内容、文章图片、长尾关键词、视频自动生成、网站AI客服、批量采集文章&#xff0c;插件已接入腾讯云大模型知识引擎xDeepSeek&#xff0c;基于腾讯云大模型知识引擎xDeepSeek可联网满血版&#xff0c;插件可实现文章生成、长尾关键词生成、…...

KylinSP3 | 防火墙和麒麟安全增强设置KySec

一、系统防火墙原理 麒麟操作系统从V10版本开始&#xff0c;默认使用了Firewalld防火墙&#xff0c;Firewalld是能提供动态管理的防火墙&#xff0c;支持网络/防火墙区域&#xff0c;用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时…...

DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集

诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友。我们会持续投入&#xff0c;力图把 Higress 变得更好&#xff0c;把 Higress 和 Spring AI Alibaba 社区和生态变得更加繁荣。 关于 Higress&#xff1a; Higress 除了作为云原生网关支持 Web 应用的部…...

sql server笔记

创建数据库 use master gocreate database stuuuuu//删除数据库if db_id ($$$) is not nullDrop database [$$$] go//新建表USE [studyTest] GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[Table_1]([id] [int] NULL,[name] [varchar](10) NULL ) ON…...

Vue 3 搭建前端模板并集成 Ant Design Vue(2025)

一、环境安装 截止2025.2.6 &#xff0c;官网发布的vue 3 稳定版本是 V 3.5.13 根据此时的官方文档要求&#xff0c;node 版本需要大于等于 V 18.3 于是使用 nvm 安装 v 20.18.0 二、创建项目 使用 Vue 官方推荐的脚手架 create-vue 快速创建 Vue3 的项目: 快速上手 | Vue.js…...

Word表格中如何只单独调整某一单元格宽度

大家好&#xff0c;我是小鱼。 在日常制作Word表格时&#xff0c;表格中不同单元格有时需要设置不同的宽度&#xff0c;但是很多小伙伴会发现想单独调整某一个单元格宽度时&#xff0c;发现其它单元格宽度也会发生变化。那么&#xff0c;到底怎么才能单独调整某一单元格宽度呢…...

CSS基础选择器和文字属性控制

CSS 层叠样式表(Cascading Style Sheets)&#xff0c;是一种样式表语言&#xff0c;它和HTML一起被用来描述网页的样式。HTML 主要用来定义网页的内容&#xff0c;也就是骨架&#xff0c;CSS 用来定义网页的样式。 CSS 是由选择器和属性声明组成的。选择器用来选择元素&#…...

保护密码等敏感信息的几个常用方法

概述 在生产环境&#xff0c;保护数据库账号密码等敏感信息是至关重要的&#xff0c;这些信息不能被所有研发工程师看见&#xff0c;本文介绍几种避免明文存储的常用方法。 方法1&#xff1a; 使用配置中心加密 适用场景&#xff1a;已采用配置中心&#xff08;如Spring Clou…...