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

Java冒泡排序详细讲解

冒泡排序是一种简单但效率较低的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。具体实现如下:

算法步骤:

  1. 比较相邻的元素:从第一个元素开始,依次比较相邻的两个元素,如果顺序不正确就交换它们的位置,直到将最大的元素移到数列末尾。

  2. 重复上述步骤:对剩下的元素重复上述步骤,每次遍历都能确定一个最大值,并将其放置到正确的位置。

  3. 重复直到排序完成:持续以上步骤,直到所有元素都已排好序。

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 - i - 1; j++) {if (arr[j] > arr[j + 1]) {// 交换 arr[j] 和 arr[j+1]int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}public static void main(String[] args) {int[] arr = {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);System.out.println("排序后的数组:");for (int i : arr) {System.out.print(i + " ");}}
}

详细讲解:

  • 冒泡排序的外层循环控制了总共需要进行几轮比较,对于长度为 n 的数组,需要进行 n-1 轮比较。
  • 内层循环中的 j 控制了每一轮比较中的具体操作,每轮比较将最大的数交换到最后,因此每次都可以将一个元素放置到正确的位置上。
  • 每次比较都是相邻两个元素的比较,如果前一个元素大于后一个元素,则进行交换。
  • 最终经过多轮比较,数组将被排列成正确的顺序。

冒泡排序的时间复杂度为 O(n^2),其中 n 为数组的长度。虽然它简单易懂,但对于大型数据集合并不适用,因为其效率较低。

相关文章:

Java冒泡排序详细讲解

冒泡排序是一种简单但效率较低的排序算法&#xff0c;它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。具体实现如下&#xff1a; 算法步骤&#xff1a; 比较相邻的元素&#xff1a;从第一个元素开始&#xff0c;依次…...

python数据解析xpath

前言一、安装&#xff1f;二、使用步骤1.基本使用**【2】谓语&#xff08;Predicates&#xff09;**案例 前言 xpath在Python的爬虫学习中&#xff0c;起着举足轻重的地位&#xff0c;对比正则表达式 re两者可以完成同样的工作&#xff0c;实现的功能也差不多&#xff0c;但xp…...

工业镜头常用参数之实效F(Fno.)和像圈

Fno. 工业镜头中常用到的参数F&#xff0c;有时候用F/#&#xff0c;Fno.来表示&#xff0c;指的是镜头通光能力的参数。它可用镜头焦距及入瞳直径来表示&#xff0c;也可通过镜头数值孔径&#xff08;NA&#xff09;和光学放大倍率&#xff08;β&#xff09;来计算。有效Fno.…...

what is apache?

Apache 通常指 Apache Software Foundation (ASF) 或 Apache HTTP Server&#xff0c;两者都是计算机软件领域的重要实体。 Apache 软件基金会 (ASF)&#xff1a;Apache 软件基金会是一个开发开源软件项目的非营利组织。它为涵盖软件开发各个方面的广泛项目提供支持&#xff0c…...

【二叉树】Leetcode 94. 二叉树的中序遍历【简单】

二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 解题思路 中序遍历是一种二叉树遍历方式&#xff0c;按照“左根右”的顺序遍历二叉树节点。 1、递归…...

Linux进程控制(等待)

进程等待 为什么要进行进程等待 进程等待是什么&#xff1f; 怎么进行进程等待&#xff1f; 回到我们之前进程状态的代码&#xff0c; 我们知道&#xff0c; 在这段代码中&#xff0c;父进程对子进程没有做任何的操作&#xff0c; 所以当子进程在退出后&#xff0c; 会一直处于…...

结构体-C语言

目录 前言 一、定义结构 结构体变量的创建和初始化 二、结构的特殊声明 特别注意&#xff1a; 结构的⾃引⽤ 三、结构体内存对⻬ 对⻬规则 优化结构体 #pragma 结构体传参 四、结构体实现位段 位段的内存分配 位段的跨平台问题 前言 C 数组允许定义可存储相同类…...

Unity DOTS中的baking(四)blob assets

Unity DOTS中的baking&#xff08;四&#xff09;blob assets blob assets表示不可变的二进制数据&#xff0c;在运行时也不会发生更改。由于blob assets是只读的&#xff0c;这意味着可以安全地并行访问它们。此外&#xff0c;blob assets仅限于使用非托管类型&#xff0c;这意…...

第三十天-Flask模板 Jinja2

目录 1.什么是模板 2.模板引擎Jinja2 默认配置 全局对象 全局函数 上下文处理器 3.模板中变量的使用 4.模板标签 条件判断if else for循环 添加注释 设置变量 转义显示 5.过滤器 过滤器使用 自定义过滤器 6.全局函数 7.模板中的宏 模板的基础 包含语法 8.…...

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】

MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步&#xff1a;1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志&#xff08;relay log&#xff09;3). slave重做中继日志中的事件&#xff0c;将数据变更反映它自…...

Fragment 与 ViewPager的联合应用(2)

5.创建底部布局bottom_layout <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"horizontal"android:layout_width"match_parent"android:layout_height"55dp"android:background&qu…...

OriginBot智能机器人开源套件

详情可参见&#xff1a;OriginBot智能机器人开源套件——支持ROS2/TogetherROS&#xff0c;算力强劲&#xff0c;配套古月居定制课程 (guyuehome.com) OriginBot智能机器人开源套件 最新消息&#xff1a;OriginBot V2.1.0版本正式发布&#xff0c;新增车牌识别&#xff0c;点击…...

Java Web-Maven

Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具 Maven的作用 1.依赖管理:方便快捷的管理项目依赖资源(jar包)&#xff0c;避免版本冲突问题 我们有的项目需要大量的jar包&#xff0c;采用手动导包的方式非常繁琐&#xff0c;并且版本升级也…...

.Net 异步委托

委托的 BeginInvoke 方法和 EndInvoke 方法可以实现异步执行委托方法。这允许委托的方法在后台线程中执行&#xff0c;而不会阻塞当前线程。小编在之前的webform开发中遇到下载进度条卡死的问题就是用它解决的。 案例&#xff1a; namespace ConsoleApplication1 {class Progr…...

web前端面试题---->HTML、CSS

一.居中方法 block元素如何居中 margin&#xff1a;0 auto&#xff1b;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);flex布局&#xff1a; 对父元素操作 &#xff1a; justify-content:center; al…...

移动端Web笔记day03

移动 Web 第三题 01-移动 Web 基础 谷歌模拟器 模拟移动设备&#xff0c;方便查看页面效果&#xff0c;移动端的效果是当手机屏幕发生了变化&#xff0c;页面和页面中的元素也要跟着等比例变化。 屏幕分辨率 分类&#xff1a; 硬件分辨路 -> 物理分辨率&#xff1a;硬件…...

c++的学习之路:3、入门(2)

一、引用 1、引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 怎么说呢&#xff0c;简单点理解就是你的小名&#xff0c;家里人叫你小名&#…...

面试经典150题【91-100】

文章目录 面试经典150题【91-100】70.爬楼梯198.打家劫舍139.单词拆分322.零钱兑换300.递增最长子序列77.组合46.全排列39.组合总和&#xff08;※&#xff09;22.括号生成79.单词搜索 面试经典150题【91-100】 五道一维dp题五道回溯题。 70.爬楼梯 从递归到动态规划 public …...

在 nginx 中使用 JavaScript

前些日子尝试了在 nginx 中写 JavaScript 的效果。考虑到 JavaScript 作为编程语言不是强需求&#xff0c;在nginx生态上还是 lua 独大&#xff0c;并且还有 openresty 这样一直强力输血&#xff0c;大部分应用场景都能找到参考的解决方案。 插件生态来说&#xff0c;github 上…...

【pytorch】安装合集

使用conda或者pip安装的指令 https://pytorch.org/get-started/previous-versions/ 测试pytorch_gpu是否可用的代码 # 测试pytorch是否安装成功 import torch print(torch.__version__) print(torch.cuda.is_available())...

Ceph存储集群搭建:如何选择RAID卡模式(HBA vs IT vs non-RAID)

Ceph存储集群搭建&#xff1a;RAID卡模式选择与性能优化实战指南 在构建企业级Ceph存储集群时&#xff0c;硬件配置的每一个细节都可能成为性能瓶颈或稳定性隐患。其中&#xff0c;RAID控制器的工作模式选择——HBA、IT与non-RAID之间的差异&#xff0c;往往被许多初次部署Ceph…...

从PolarCTF一道Crypto题,聊聊如何用SageMath秒解自定义群运算的离散对数问题

从PolarCTF一道Crypto题看SageMath在离散对数问题中的实战应用 1. 密码学竞赛中的非标准群运算挑战 在CTF密码学题目中&#xff0c;自定义群运算的离散对数问题&#xff08;DLP&#xff09;是常见的高频考点。近期PolarCTF竞赛中出现了一道典型题目&#xff0c;要求参赛者在非…...

Wan2.2-T2V-A5B常见错误排查:运行失败、生成卡顿的解决方法

Wan2.2-T2V-A5B常见错误排查&#xff1a;运行失败、生成卡顿的解决方法 1. 问题概述与快速诊断 Wan2.2-T2V-A5B作为一款轻量级文本到视频生成模型&#xff0c;虽然在资源消耗和响应速度上具有优势&#xff0c;但在实际使用过程中仍可能遇到运行失败或生成卡顿的问题。这些问题…...

在树莓派4B上编译运行Speedtest-CLI:手把手解决curl和expat库的交叉编译难题

树莓派4B实战&#xff1a;从零构建Speedtest-CLI测速工具全流程指南 1. 环境准备与工具链配置 在树莓派4B上构建Speedtest-CLI测速工具&#xff0c;首先需要搭建完整的交叉编译环境。不同于x86平台的直接编译&#xff0c;ARM架构下的开发需要特别注意工具链的选择和配置。 必备…...

选择性记忆提取,把人类遗忘机制用在了RAG上,这架构真有点东西

当前大模型处理长文本面临三大瓶颈&#xff1a;算力爆炸&#xff1a;传统注意力机制随文本长度呈二次方增长&#xff08;O(N)&#xff09;&#xff0c;百万级token直接OOMRAG碎片化&#xff1a;检索增强生成将文档切成独立片段&#xff0c;破坏多跳推理的逻辑链条记忆遗忘&…...

驱动残留清理技术解析:Display Driver Uninstaller实战指南

驱动残留清理技术解析&#xff1a;Display Driver Uninstaller实战指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninsta…...

mkcert 命令文档 - 本地 HTTPS 开发证书生成工具详解

1. 命令简介mkcert 是一个用 Go 语言编写的、零配置的本地开发用自签名证书生成工具。它能够自动创建并安装本地证书颁发机构&#xff08;CA&#xff09;到系统的信任存储中&#xff0c;并生成受本地信任的开发证书&#xff0c;大幅简化 HTTPS 本地开发环境的搭建过程&#xff…...

高效突破:Cursor Pro功能优化与多场景应用指南

高效突破&#xff1a;Cursor Pro功能优化与多场景应用指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial requ…...

魔兽争霸3帧率优化与性能调优指南:从卡顿到高流畅度的开源解决方案

魔兽争霸3帧率优化与性能调优指南&#xff1a;从卡顿到高流畅度的开源解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 在现代硬件环境下运行经…...

造相Z-Image文生图模型v2实战应用:电商主图、课件插图、设计提案一键生成

造相Z-Image文生图模型v2实战应用&#xff1a;电商主图、课件插图、设计提案一键生成 1. 为什么选择Z-Image v2进行商业图像创作 在当今内容爆炸的时代&#xff0c;视觉素材的需求量呈指数级增长。传统图像创作方式面临三大痛点&#xff1a;专业设计师成本高昂、版权素材获取…...