冒泡排序java实现

冒泡排序

冒泡排序是通过重复地遍历要排序的列表,一次比较两个元素,并且如果它们的顺序错误就将它们交换位置。冒泡排序的时间复杂度为 O(n^2)。

冒泡排序的基本步骤:

1. 从列表的第一个元素开始,向后遍历每一个元素。
2. 对于当前遍历到的元素,再次向后遍历列表中剩余的元素。
3. 比较当前元素与后面的每一个元素,如果当前元素大于(小于)后面的元素,则交换它们的位置。
4. 继续遍历列表中的每一个元素,并重复步骤 2 和步骤 3,直到列表已经完全排序。

代码实现

public class BubbleSort {public static void main(String[] args) {int []arr = {5,6,7,4,3,2,6,7,4,2,4,5,7,44,33,5,66,775,55};new BubbleSort().bubbleSort2(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}public void bubbleSort(int []arr){for (int i = arr.length-1; i>0;i--) {// 从第一个元素开始,依次比较该元素和该元素的后一个元素for (int j = 0; j < i; j++) {if (arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1]=temp;}}}}
/*
上面的冒泡排序虽然可以实现效果但是:
如果数组为[9,1,2,3,4,5,6,7,8], 这个时候,第一次循环就可以把
9交换到最后面,数组就为有序,但是程序任然会继续运行,后面的循环根本没有意义,这是可以定义一个变量,用来记录最后一次交换的位置,如果没有执行交换说明
已经有序
*/public void bubbleSort2(int []arr){int lastTemp=arr.length-1;for (int i = lastTemp; i>0;i--) {lastTemp = 0;for (int j = 0; j < i; j++) {if (arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1]=temp;lastTemp = j;}}if (lastTemp == 0)break;}}
}

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

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

相关文章

产品推荐 | iWave 的 FPGA-IP 评估附加 FMC 卡

1、产品概述 iWave 的 FPGA-IP 评估附加 FMC 卡旨在满足 ANSI/VITA 57.1 FMC 标准。该卡支持高引脚数 &#xff08;HPC&#xff09; 和低引脚数 &#xff08;LPC&#xff09; 连接器&#xff0c;可在风冷环境中使用。FPGA-IP评估附加卡可以与市场上的大多数FPGA开发套件连接。…

去中心化社交媒体:分析 Facebook 在区块链平台上的角色

在当今数字时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;随着人们对数据隐私和信息控制的关注不断增加&#xff0c;传统的中心化社交媒体平台也面临着越来越多的质疑和挑战。为了应对这些挑战&#xff0c;越来越多的人开始探索去中心化社…

怎样关闭浏览器文件下载安全病毒中检测功能

怎样关闭浏览器文件下载安全病毒中检测功能 有时候需要通过浏览下载一些特殊文件&#xff0c;浏览器会提示有病毒&#xff0c;终止下载并且自动删除文件。 以为是浏览器的问题&#xff0c;用 chrome、Edge、firefox 三种浏览器下载均失败。 尝试关闭了所有浏览器安全防护也不行…

赋能Web3用户:增强在线隐私

随着数字化时代的发展&#xff0c;人们越来越依赖互联网来进行各种活动&#xff0c;从社交互动到金融交易&#xff0c;几乎所有的日常生活都离不开网络。然而&#xff0c;随之而来的是个人隐私安全面临的挑战。在传统的互联网架构下&#xff0c;用户的个人数据往往被中心化的平…

【RabbitMQ】RabbitTemplate类无法自动注入

在一个spring项目中&#xff0c;添加了spring整合的spring-boot-starter-amqp依赖&#xff0c;以及测试用的spring-boot-starter-test依赖。 这时我们有如下代码 SpringBootTest public class PublisherTest {Autowiredpublic RabbitTemplate template;Testpublic void publi…

【MIT6.S081】Lab1: Xv6 and Unix utilities(详细解答版)

实验内容网址&#xff1a;https://xv6.dgs.zone/labs/requirements/lab1.html Sleep 关键点&#xff1a;函数参数判断、系统函数调用 思路&#xff1a; 通过argc来判断函数参数是否正确&#xff0c;通过atoi函数来讲字符串转化为整型&#xff0c;调用sleep函数后退出程序。 代…

Vue2和Vue3组件通信:父子与兄弟间的桥梁

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

3D Matching:实现halcon中的find_surface_model

halcon中的三维匹配大致分为两类&#xff0c;一类是基于形状的(Shape-Based)&#xff0c;一类是基于表面的(Surface-Based)。基于形状的匹配可用于单个2D图像中定位复杂的3D物体&#xff0c;3D物体模型必须是CAD模型&#xff0c;且几何边缘清晰可见&#xff0c;使用的相机也要预…

蓝桥杯-python-破损的楼梯(dp)

问题描述 小蓝来到了一座高耸的楼梯前&#xff0c;楼梯共有 N 级台阶&#xff0c;从第 0 级台阶出发。小蓝每次可以迈上上级或2级台阶&#xff0c;但是&#xff0c;楼梯上的第 a1级、第a2 级、第 a3 级&#xff0c;以此类推&#xff0c;共 级台阶的台阶面已经坏了&#xff0c…

性能优化原则

相关链接&#xff1a;【运行环境】加载资源的形式 性能优化 1 性能优化原则 多使用内存、缓存或其他方法 减少CPU计算量&#xff0c;减少网络加载耗时 &#xff08;适用于所有编程的性能优化----空间换时间&#xff09; 2 从何入手 性能优化-让加载更快 减少资源体积&#x…

iPad手绘+Ai二合一课程,Procreate+Mj+SD零基础到精通(10节视频课)

课程内容&#xff1a; 1 系统课 AI辅助设计流-从零进阶轻松驾驭AI设计,mp4 2 商务沟通阶段 ChatGPT Midjourney-聊天机器人 项目调研资料收集 ,mp4 3_商务沟通阶段 ChatGPT_Midjourney-Midjourney基础 界面初识初步设置 .mp4 4_商务沟通阶段 ChatGPT_Midjourney-Midjourney…

支持向量机——SVM

SVM 是一种机器学习算法&#xff0c;它的全称是支持向量机&#xff08;Support Vector Machine&#xff09;。它主要用于解决二分类问题&#xff0c;即给定一组数据&#xff0c;将它们分为两类。SVM 的基本思想是在特征空间中寻找一个最优的超平面&#xff0c;使得两类数据在该…

康谋分享 | aiSim5 物理相机传感器模型验证方法(一)

摘要&#xff1a; aiSim5可以实时模拟复杂的传感器配置&#xff0c;在多GPU分布式渲支持的支持下&#xff0c;aiSim可以渲染20多个摄像头、10多个雷达和10多个激光雷达在同一环境下运行。aiSim5独有的实时渲染引擎能够满足对物理精确环境和天气模拟的所有要求&#xff0c;具有…

【MATLAB源码-第3期】基于MATLAB的256QAM误码率曲线,使用IQ调制解调,以及星座图展示。

1、算法描述 正交幅度调制&#xff08;QAM&#xff0c;Quadrature Amplitude Modulation&#xff09;是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度&#xff08;π/2&#xff09;的正弦波&#xff0c;因此被称作正交载波。这种调制方式因此而得…

[leetcode]longest-consecutive-sequence 最长连续序列

. - 力扣&#xff08;LeetCode&#xff09; 哈希表 思路和算法 我们考虑枚举数组中的每个数 xxx&#xff0c;考虑以其为起点&#xff0c;不断尝试匹配 x1,x2,⋯x1, x2, \cdotsx1,x2,⋯ 是否存在&#xff0c;假设最长匹配到了 xyxyxy&#xff0c;那么以 xxx 为起点的最长连续序…

虚幻引擎启动报错记录

0x00007FFEF0C8917C (UnrealEditor-CoreUObject.dll)处(位于 UnrealEditor.exe 中)引发的异常: 0xC0000005: 写入位置 0x0000000000000030 时发生访问冲突。 解决办法&#xff1a;首先查看堆栈信息&#xff0c;我的项目启动是因为默认场景编译不过&#xff0c;进到编辑器配置文…

蓝桥杯真题代码记录(直线

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 在平面直角坐标系中&#xff0c;两点可以确定一条直线。如果有多点在一条直线上&…

新零售SaaS架构:客户管理系统架构设计(万字图文总结)

什么是客户管理系统&#xff1f; 客户管理系统&#xff0c;也称为CRM&#xff08;Customer Relationship Management&#xff09;&#xff0c;主要目标是建立、发展和维护好客户关系。 CRM系统围绕客户全生命周期的管理&#xff0c;吸引和留存客户&#xff0c;实现缩短销售周…

CentOS上使用cgroup限制进程使用内存

安装cgroup 要使用cgroup首先需要系统支持&#xff0c;需要安装两个rpm包 yum install libcgroup libcgroup-tools 创建限制内存的cgroup组 cgroup组需要在/sys/fs/cgroup/memory目录下创建&#xff0c;我们创建一个限制进程内存大小为10M的cgroup组&#xff0c;这个组中内存…

CUDA 12.4文档2 内核线程架构

本博客参考官方文档进行介绍&#xff0c;全网仅此一家进行中文翻译&#xff0c;走过路过不要错过。 官方网址&#xff1a;https://docs.nvidia.com/cuda/cuda-c-programming-guide/ 本文档分成多个博客进行介绍&#xff0c;在本人专栏中含有所有内容&#xff1a; https://bl…