首页 > 编程语言 >java之冒泡排序

java之冒泡排序

时间:2023-12-15 12:12:42浏览次数:26  
标签:11 java 22 33 44 冒泡排序 55 比较

冒泡排序原理:

  从第一个数开始,和后面一个数比较大小,根据升序或者降序,看是否需要互换位置。

  每一轮会把1个数罗列到正确位置,经过数组长度-1轮比较,排序完成。

比如:对数组{11,55,33,22,44}进行升序排列

  

  数组长度是5,需要经过5-1轮,每一轮需要比较5-当前轮次。

public class Test7 {
    public static void main(String[] args){
        int[] array_1={11,55,33,22,44};
        // 升序排列
        int x;
        for(int i=0;i<array_1.length-1;i++){
            System.out.println("\n第"+(i+1)+"轮开始");
            for(int j=0;j<array_1.length-1-i;j++){
                System.out.println("第"+(j+1)+"次比较:"+array_1[j]+"和"+array_1[j+1]);
                if(array_1[j]>array_1[j+1]){
                    System.out.println("互换");
                    x=array_1[j];
                    array_1[j] = array_1[j+1];
                    array_1[j+1] = x;
                }
                System.out.println("第"+(j+1)+"次比较结束:"+Arrays.toString(array_1));
            }
            System.out.println("第"+(i+1)+"轮结束:"+Arrays.toString(array_1));
        }
        System.out.println("最终排序结果为"+Arrays.toString(array_1));
    }
}
第1轮开始
第1次比较:11和55
第1次比较结束:[11, 55, 33, 22, 44]
第2次比较:55和33
互换
第2次比较结束:[11, 33, 55, 22, 44]
第3次比较:55和22
互换
第3次比较结束:[11, 33, 22, 55, 44]
第4次比较:55和44
互换
第4次比较结束:[11, 33, 22, 44, 55]
第1轮结束:[11, 33, 22, 44, 55]

第2轮开始
第1次比较:11和33
第1次比较结束:[11, 33, 22, 44, 55]
第2次比较:33和22
互换
第2次比较结束:[11, 22, 33, 44, 55]
第3次比较:33和44
第3次比较结束:[11, 22, 33, 44, 55]
第2轮结束:[11, 22, 33, 44, 55]

第3轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第2次比较:22和33
第2次比较结束:[11, 22, 33, 44, 55]
第3轮结束:[11, 22, 33, 44, 55]

第4轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第4轮结束:[11, 22, 33, 44, 55]
最终排序结果为[11, 22, 33, 44, 55]

 

标签:11,java,22,33,44,冒泡排序,55,比较
From: https://www.cnblogs.com/luoshuai7394/p/17903103.html

相关文章

  • 【JAVA】Multiple markers at this line @Override的解决方法
    【未解决】我的是1.8,都显示的是1.8使用Eclipse进行项目开发,在实现类中的方法前面如果添加@Override就提示“Multiplemarkersatthisline”的错误,问题描述如下Multiplemarkersatthisline-ThemethodgetStudentByID(String)oftypeStudentBeanImplmustoverridea......
  • Java-Redis是如何保证高可用的?
    Java-Redis是如何保证高可用的?​​高性能基于内存的存储Redis是基于内存的存储系统,所有数据都保存在内存中,这使得Redis可以快速读取和写入数据。与传统的基于磁盘存储的系统相比,Redis的读写性能更高。单线程的设计是单线程的设计,所有的读写请求都由同一个线程处理,避免了多线......
  • JavaWeb - Day08 - MySQL - 多表查询、事务、索引 - Mybatis - 入门
    01.MySQL-多表查询-概述数据准备#建议:创建新的数据库createdatabasedb04;usedb04;--部门表createtabletb_dept(idintunsignedprimarykeyauto_incrementcomment'主键ID',namevarchar(10)notnulluniquecomment'部门名称',......
  • Java-常见的排序算法有哪些
    Java-常见的排序算法有哪些比较排序算法:冒泡排序(BubbleSort):过程:从左到右依次比较相邻的元素,如果顺序不对就交换它们,一轮比较会将最大的元素冒泡到末尾。优势:简单易懂,对于小型数据集表现较好。劣势:时间复杂度为O(n^2),性能相对较差。插入排序(InsertionSort):过......
  • Java云架构、云服务、云运维的医院信息管理系统源码(云HIS)
    医院信息系统(HIS)经历了从手工到单机再到局域网的两个阶段,随着云计算、大数据新技术迅猛发展,基于云计算的医院信息系统将逐步取代传统局域网HIS,以适应人们对医疗卫生服务越来越高的要求。利用云计算、大数据等现代信息技术研发的医疗卫生信息平台(HIP)实现了医院信息化从局域网向互......
  • 算法学习笔记二一冒泡排序
    目录什么是冒泡排序算法原理代码示例什么是冒泡排序​对给定数组进行遍历,每次比较相邻两个元素大小,若大的数值在前面则交换两数位置(升序),每完成一趟遍历数组中最大的元素都会上升到数组的末尾,这也是冒泡一词的由来。算法原理(升序)列表每相邻的数,如果前面比后面大,则交换这两个数......
  • Java-特殊运算符与方法
    Java-特殊运算符与方法一、运算符移位:<<​>>​运算结果说明1<<12代表1的二进制001​左移1位,为010​=24>>21代表4的二进制100​右移2位,为001​=1或:|​二进制运算:(或=有1为1,没则为0)​1​|1​得1​​1​|0​得0​​0​|1​得1​......
  • Java-特殊运算符与方法
    Java-特殊运算符与方法一、运算符移位:<<​>>​运算结果说明1<<12代表1的二进制001​左移1位,为010​=24>>21代表4的二进制100​右移2位,为001​=1或:|​二进制运算:(或=有1为1,没则为0)​1​|1​得1​​1​|0​得0​​0​|1​得1​......
  • Java-基础类
    Java-基础类int在Java中,int​类型是32位的。它表示一个32位的带符号整数,范围从-2^31​到2^31-1​,即从-2147483648​到2147483647​(±21亿)。为什么不是64位?Java中的int​类型是32位的,而不是64位,是由于历史原因和平台兼容性考虑。当Java语言设计之初,主要关注了内存......
  • 无涯教程-Java - acos()函数
    该方法返回指定双精度值的反余弦值。acos()-语法doubleacos(doubled)这是参数的详细信息-d - 双精度数据类型。acos()-返回值此方法返回指定双精度值的反余弦。acos()-示例publicclassTest{publicstaticvoidmain(Stringargs[]){double......