冒泡排序【Java算法】

文章目录

    • 1. 概念
    • 2. 思路
    • 3. 代码实现

1. 概念

比较前后相邻的两个数据,如果前面数据大于后面的数据,就将这两个数据互换。这样对数组的第0个数据到第 N - 1 个数据进行一次遍历后,最大的一个数据就 “沉” 到数组的第 N - 1 个位置。
N = N - 1,如果 N 不为0就重复前面步骤,否则排序完成。

2. 思路

相邻数据作比较,如果前面数据大于后面的数据,就将这两个数据互换,就这样重复下去,那么序列中最大的数据势必会飘到最右边。这里的数组我用 arr 表示,也就是说最大的数据此时位于第 arr.length - 1 的位置;

② 第一组排序完成之后,那么全序列中最大的数据已经出现在最右边了。我们是不是可以用同样的方法再找出第二大、第三大的数据呢?当然可以。数组的长度我们已经知道了,那这样重复的工作要做几遍你知道了吗?要进行 arr.length - 1 遍排序,用 for 循环来实现,此处为外循环;

③ 再看内部冒泡过程,这里当然也通过 for 循环来实现,此处为内循环。冒泡到什么时候停止?到该次冒泡序列的最后一个数据,第一次冒泡序列的最后一个数据位置是 arr.length - 1,第二次的是 arr.length - 2,后面减的数字是否可以用外循环的 i 来取代?当然可以;

④ 在内循环里面,我们首先对前后数字大小进行一个判断,如果前面数字大于后面就交换,用一个临时变量 temp 接收,实现数据互换,直到本次排序结束,再进行下一次排序。

3. 代码实现

public class Main {public static void main(String[] args) {int[] arr = {4, 1, 2, 7, 6, 15, 3, 11, 8};int[] newArr = order(arr);for (int number : arr) {System.out.print(number + " ");}}public static int[] order(int[] array) {int i, j, temp;for (i = 0; i < array.length - 1; i++) {for (j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j + 1]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}return array;}
}

在这里插入图片描述

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

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

相关文章

知识区博主转型——兼做知识区和改造区博主!!!!!

想脱单的进来&#xff0c;一起交流如何能脱单&#xff01;&#xff01;&#xff01; 为什么——我太羡慕有对象的人了哭死&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 你是不是很羡慕别人怎么都有女朋友 别人家的女朋友怎么都那么好&#xff…

FPGA学习—通过数码管实现电子秒表模拟

文章目录 一、数码管简介二、项目分析三、项目源码及分析四、实现效果五、总结 一、数码管简介 请参阅博主以前写过的一篇电子时钟模拟&#xff0c;在此不再赘述。 https://blog.csdn.net/qq_54347584/article/details/130402287 二、项目分析 项目说明&#xff1a;本次项目…

RISCV 5 RISC-V调用规则

RISCV 5 RISC-V调用规则 1 Register Convention1.1 Integer Register Convention1.2 Floating-point Register Convention 2. Procedure Calling Convention2.1 Integer Calling Convention2.2 Hardware Floating-point Calling Convention2.3 ILP32E Calling Convention2.4 Na…

大数据课程F4——HIve的其他操作

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握HIve的join&#xff1b; ⚪ 掌握HIve的查询和排序 ⚪ 掌握HIve的beeline ⚪ 掌握HIve的文件格式 ⚪ 掌握HIve的基本架构 ⚪ 掌握HIve的优化&#xff1b; 一、jo…

想了解好用的翻译pdf的软件吗?

在全球化的时代背景下&#xff0c;跨国贸易越来越普遍&#xff0c;跨语言沟通也越来越频繁。小黄是一家跨国公司的员工&#xff0c;他梦想能在全球各地拓展自己的业务&#xff0c;奈何遇到了一个巨大的挑战&#xff1a;跨语言沟通。在这其中&#xff0c;pdf文件是他经常接收到的…

linux基本功系列之cd命令实战

文章目录 前言一. cd命令的介绍二. 语法格式及常用选项三. 参考案例总结 前言 居然发现了落下了CD命令&#xff0c;也不算落下把&#xff0c;主要是cd命令内容太少&#xff0c;撑不起一篇文章&#xff0c;今天也写一写&#xff0c;就当记个笔记吧 &#x1f3e0;个人主页&#…

ubuntu下,在vscode中使用platformio出现 Can not find working Python 3.6+ Interpreter的问题

有一段时间没有使用platformio了&#xff0c;今天突然使用的时候&#xff0c;发现用不了&#xff0c;报错&#xff1a; Ubuntu PlatformIO: Can not find working Python 3.6 Interpreter. Please install the latest Python 3 and restart VSCode。 上网一查&#xff0c;发现…

【Liux下6818开发板(ARM)】触摸屏

(꒪ꇴ꒪ ),hello我是祐言博客主页&#xff1a;C语言基础,Linux基础,软件配置领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff01;送给读者的一句鸡汤&#x1f914;&#xff1a;集中起来的意志可以击穿顽石!作者水平很有限&#xff0c;如果发现错误&#x…

MacOS上用docker运行mongo及mongo-express

MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。 前提 要求…

高校陆续拥抱chatgpt,人工智能会给学术带来什么变化会有什么影响

在当今信息爆炸的时代&#xff0c;人工智能在各行各业都发挥着越来越重要的作用&#xff0c;高校教育领域也不例外。最近&#xff0c;越来越多的高校开始陆续拥抱chatgpt&#xff08;Chatbot GPT&#xff09;这一人工智能技术&#xff0c;在学术领域会带来了怎样的变化与影响&a…

【RabbitMQ(day3)】扇形交换机和主题交换机的应用

文章目录 第三种模型&#xff08;Publish/Subscribe 发布/订阅&#xff09;扇型&#xff08;funout&#xff09;交换机Public/Subscribe 模型绑定 第四、第五种模型&#xff08;Routing、Topics&#xff09;第四种模型&#xff08;Routing&#xff09;主题交换机&#xff08;To…

在线五子棋对战

目录 数据管理模块&#xff08;数据库设计&#xff09; 前端界面模块 业务处理模块 会话管理模块网络通信模块(session,cookie) 在线管理模块 房间管理模块 用户匹配模块 项目扩展 数据管理模块&#xff08;数据库设计&#xff09; 数据库中有可能存在很多张表&#xf…

微信小程序接入腾讯云天御验证码

腾讯云新一代行为验证码&#xff08;Captcha&#xff09;&#xff0c;基于十道安全防护策略&#xff0c;为网页、APP、小程序开发者打造立体、全面的人机验证。在保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时&#xff0c;提供更精细化的用户体验。 …

DataSphere Studio- 1.1.1 安装部署(自动化脚本)

DSSLinkis Ansible一键安装脚本 DSS1.1.1 & Linkis 1.3.0 Ansible 一键部署脚本 作者&#xff1a;wubolive Q Q&#xff1a;1049635685 邮箱&#xff1a;wubolivefoxmai.com Github&#xff1a;https://github.com/wubolive/dss-linkis-ansible 一、简介 为解决繁琐…

消息疯狂堆积!RocketMQ出Bug了?

前言 用过 MQ 的同学&#xff0c;可能会遇到过消息堆积的问题。而肥壕最近也踩上了这个坑&#xff0c;但是发现结果竟然是这么一个意料之外的原因而导致的。 正文 那一晚月黑风高&#xff0c;肥壕正准备踏上回家的路&#xff0c;突然收到告警短信轰炸&#xff01;“MQ 消息堆…

nvm安装和使用

公司不同系统用的node版本不一样&#xff0c;所以就需要安装多版本了&#xff0c;那么使用nvm来管理就大大方便了开发。 使用nvm有哪些好处呢 安装node很方便&#xff0c;只需要一条命令可以轻松切换node版本可以多版本node并存 需要注意的是安装之前先把原有的node给卸载掉…

Mysql面试突击班索引,事务与锁

Mysql面试突击班索引&#xff0c;事务与锁 1.为什么Mysql要使用B树做为索引而不用B树 B树能显著减少IO次数&#xff0c;提高效率B树的查询效率更加稳定&#xff0c;因为数据放在叶子节点B树能提高范围查询的效率&#xff0c;因为叶子节点指向下一个叶子节点B树采取顺序读 2.…

一 关于idea如何在svn进行项目下载并运行成功

安装svn客户端 如图 安装时请选择该选项&#xff08;Will be installed on local hard drive&#xff09;并选择自己想要安装的目录路径 如图 svn安装成功 如图 注意 安装完成后&#xff0c;使用svn进行一次checkout的项目导出完成以上五步时&…

【火炬之光-召唤装备】

头部胸甲手套鞋子武器盾牌项链戒指腰带神格备注*邪龙头冠无限要塞/血抗血抗血抗***终焉复临任意攻速单手武器/黑峡烬盾1召唤等级血抗*原点的寒冬1召唤等级1.刷钢铁炼境监视者-无垢之墙升级。2.不能用典狱官的胸针参考视频机械领主无限要塞––***终焉复临––求生之欲––参考视…

TikTok马来西亚站变动,指定物流服务商!

8月2日&#xff0c;据TechinAsia报道&#xff0c;TikTok已将百世快递在马来西亚的子公司BestExpressMalaysia&#xff0c;指定为其在马来西亚的物流服务商。目前&#xff0c;百世快递已在越南、泰国与TikTok展开类似合作。 合作后&#xff0c;百世马来子公司将为TikTokShop卖家…