【Java学习笔记】冒泡排序

冒泡排序

思想:经过一轮遍历比较,把最大的放在数组的末尾

java 复制代码
int[] a = {3, 2, 1};
for( int i = 0; i < a.length-1; i++){
    for( int j = 0; j < a.length-1-i; j++){
        if(a[j] > a[j+1]){
            int temp = a[j];
            a[j] = a[j+1];
            a[j+1] = temp;
        }
    }
}
for( int i = 0; i < a.length; i++){
    System.out.print(a[i]+ " ");
}

分析过程

分析冒泡排序

初始数组

复制代码
### `[24, 69, 80, 57, 13]`

第 1 轮排序:目标把最大数放在最后

复制代码
### 第 1 次比较:`[24, 69, 80, 57, 13]`
复制代码
### 第 2 次比较:`[24, 69, 80, 57, 13]`
复制代码
### 第 3 次比较:`[24, 69, 57, 80, 13]`
复制代码
### 第 4 次比较:`[24, 69, 57, 13, 80]`

第 2 轮排序:目标把第二大数放在倒数第二位置

复制代码
### 第 1 次比较:`[24, 69, 57, 13, 80]`
复制代码
### 第 2 次比较:`[24, 57, 69, 13, 80]`
复制代码
### 第 3 次比较:`[24, 57, 13, 69, 80]`

第 3 轮排序:目标把第 3 大数放在倒数第 3 位置

复制代码
### 第 1 次比较:`[24, 57, 13, 69, 80]`
复制代码
### 第 2 次比较:`[24, 13, 57, 69, 80]`

第 4 轮排序:目标把第 4 大数放在倒数第 4 位置

复制代码
### 第 1 次比较:`[13, 24, 57, 69, 80]`

思路:

1. 外层for循环:表示需要进行排序的轮次,即每一次都找出最大的数排在队尾,需要排序数组长度-1次才可以排完

2. 内层for循环:表示每一轮排序把最大的放在数组末尾的这个过程的实现元素之间需要比较的轮次,每排序好一个元素,比较的轮次就减少,和外层循环有关

大体思想:化繁为简,先死后活,由内层推出的外层

拓展延申:从大到小排序怎么实现?

修改比较的方式即可

从小到大排序:前面的比后面大就交换

从大到小排序:后面的比前面小就交换

从大到小排序代码示例

java 复制代码
int[] a = {3, 2, 1};
for( int i = 0; i < a.length-1; i++){
    for( int j = 0; j < a.length-1-i; j++){
        if(a[j] < a[j+1]){
            int temp = a[j];
            a[j] = a[j+1];
            a[j+1] = temp;
        }
    }
}
for( int i = 0; i < a.length; i++){
    System.out.print(a[i]+ " ");
}

视频教学连接:透彻理解 Java 冒泡排序的实现方法

相关推荐
prinrf('千寻)17 分钟前
MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
java·开发语言·mybatis
985小水博一枚呀18 分钟前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
老华带你飞23 分钟前
实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·实习记录小程序
FakeOccupational39 分钟前
计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统
笔记·科技
在未来等你1 小时前
互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战
java·微服务·ai·kubernetes·大模型·embedding·spring ai
源码技术栈1 小时前
SaaS基于云计算、大数据的Java云HIS平台信息化系统源码
java·大数据·云计算·云his·his系统·云医院·区域his
编程、小哥哥1 小时前
互联网大厂Java面试:从Spring Boot到微服务架构的技术深挖
java·spring boot·redis·微服务·prometheus·面试技巧
揽你·入怀1 小时前
数据结构:ArrayList简单实现与常见操作实例详解
java·开发语言
okok__TXF2 小时前
SpringBoot3+AI
java·人工智能·spring
AA-代码批发V哥2 小时前
Math工具类全面指南
java·开发语言·数学建模