【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 冒泡排序的实现方法

相关推荐
步行cgn3 分钟前
OCP开闭原则:面向对象设计的核心原则
java·开发语言·开闭原则
Willliam_william3 分钟前
QEMU学习之路(13)— 在BusyBox中安装pciutils
学习
落木萧萧82512 分钟前
MyBatis 启动的时候都在干什么:从 MappedStatement 说起
java·数据库·后端
en.en..13 分钟前
Linux wait()函数(预防僵尸进程)
java·大数据·开发语言
小白的后端世界15 分钟前
数据分析基础学习
人工智能·学习·数据分析
扬大平仔27 分钟前
小深:用 AgentScope Java 2.0 Harness 做私人助手(上)
java·开发语言
人工智能培训33 分钟前
从“捏泥人”到“造世界”:3D生成式AI的技术跃迁与产业落地
大数据·人工智能·学习·生活·ai写作
captain37633 分钟前
网络编程(1)
java·网络·ide·java-ee
鱼很腾apoc35 分钟前
【Linux】第15期 讲解IP网络层核心原理与机制
linux·服务器·网络协议·学习·tcp/ip·ip·网络层
李少兄37 分钟前
JavaScript 运算符完全指南
java·开发语言·javascript