排序算法-冒泡排序

属性

特性总结:

  1. 冒泡排序是一种非常容易理解的排序 '

  2. 时间复杂度:O(N^2)

  3. 空间复杂度:O(1)

  4. 稳定性:稳定

代码及注释

java 复制代码
public class BubbleSort {
    // 冒泡排序
    public static void bubbleSort(int[]arr){
        //i表示进行冒泡排序的边界,冒泡排序是将最大值慢慢移动到最后一个位置
        //当最大值到最后一个位置后,就不能被影响了,边界就要向前移动
        for(int i=arr.length-1;i>=1;i--){
            //当进行冒泡排序时,要是数据在本轮冒泡排序中已经没有发生数据交换了,就说明冒泡排序已经完成
            //用flag监测冒泡排序过程中有没有发送数据交换
            boolean flag=true;
            for(int j=0;j<=i-1;j++){
                if(arr[j]>arr[j+1]){
                    swap(arr,j,j+1);
                    //发生交换,说明数组没有序,改变flag的值
                    flag=false;
                }
            }
            //没有发生交换,说明现在就能确定数组已经有序了
            if(flag==true){
                break;
            }
        }
    }

     public static void swap(int[] arr,int m,int n) {
        int tmp=arr[m];
        arr[m]=arr[n];
        arr[n]=tmp;
    }
}
相关推荐
李游Leo1 天前
Redis 持久化与高可用实践(RDB / AOF / Sentinel / Cluster 全解析)
java·spring·bootstrap
mask哥1 天前
详解mcp以及agen架构设计与实现
java·微服务·flink·大模型·ai agent·springai·mcp
听情歌落俗1 天前
MATLAB3-1变量-台大郭彦甫
开发语言·笔记·算法·matlab·矩阵
Propeller1 天前
【Android】View 交互的事件处理机制
android·java
量子炒饭大师1 天前
收集飞花令碎片——C语言关键字typedef
c语言·c++·算法
杨杨杨大侠1 天前
Atlas Mapper 教程系列 (5/10):集合映射与嵌套对象处理
java·开源·github
ERP老兵_冷溪虎山1 天前
Python/JS/Go/Java同步学习(第十三篇)四语言“字符串转码解码“对照表: 财务“小南“纸式转码术处理凭证乱码崩溃(附源码/截图/参数表/避坑指南)
java·后端·python
是2的10次方啊1 天前
如何设计10万QPS秒杀系统?缓存+消息队列+分布式锁架构实战
java
心灵宝贝1 天前
Tomcat Connectors 1.2.37 源码编译安装教程(mod_jk 详细步骤)
java·tomcat
澡点睡觉1 天前
【数据结构与算法Trip第4站】摩尔投票法
算法