冒泡排序-BubbleSort

1、基本思路

从数组的左边开始,比较两个元素的大小,当左边大于右边时,更换左右元素位置,否则不改变;接着向右移动一步,比较第二个元素和第三个元素的大小,重复上述操作,直到最后一个元素,此时,最大的元素就已经移动到了最右边;然后进行下一轮比较,但是下一轮比较时,不需要比较最后一个元素了。

2、代码实现

java 复制代码
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = new int[]{33, 24, 4, 28, 95, 63, 86, 77};
        bubbleSort(arr);
        for (int i = 0; i < arr.length; i++){
            System.out.print(arr[i] + " ");
        }
    }
    /**
     * 冒泡排序
     *
     * @param arr 需要排序的整数数组
     */
    public static void bubbleSort(int[] arr) {
        int length = arr.length;
        for (int i = length -1; i > 0; i-- ){
            for (int j = 0; j < i; j++){
                if (arr[j] > arr[j+1]){
                    swap(j,j+1,arr);
                }
            }
        }
    }
    private static void swap(int i, int i1, int[] arr) {
        int temp = arr[i];
        arr[i] = arr[i1];
        arr[i1] = temp;
    }
}

双层循环,时间复杂度为O(N^2)

3、动态理解

查看这个网站,动态演示,帮助理解

相关推荐
风流 少年几秒前
Spring AI 2.0:阿里云百炼平台(工作流应用)
java·后端·spring
长谷深风1116 分钟前
AI Tool 设计:粒度、参数与错误恢复怎么做
java·大数据·人工智能·ai agent·agent工作流·智能体设计·ai产品设计
学学酱快乐22 分钟前
2026年PMP考试生命周期选择决策树精讲:从需求判断到混合型统一框架的应试全攻略
算法·决策树·机器学习·pmp新版考试大纲·pmp新题型·pmp培训哪家好·pmp培训机构推荐
傅科摆 _ py35 分钟前
动态规划复习
算法·动态规划
Wang's Blog1 小时前
PostgreSQL笔记49:向量检索核心算法、索引调优与过滤策略深度解析
笔记·算法·postgresql
疯狂打码的少年1 小时前
【数据结构】交换类排序:冒泡与快速排序
数据结构·笔记·算法·排序算法
QQ_21696290961 小时前
【项目编号:project95315】SpringBoot公共自习室管理系统:座位预约、房间管理、签到核销、公告规则完整实战
java·spring boot·后端
嵌入式阿蔡2 小时前
面试高频考点 01:volatile / 中断 / 堆栈 八股精讲
java·面试·职场和发展·嵌入式实时数据库
Nil2082 小时前
leetcode 108有序数组转换为二叉搜索树
数据结构·算法·leetcode
高频因子挖掘机2 小时前
QuantDash 成交量单位统一实战:从“手”到“股”的跨市场量化数据清洗全流程
后端·算法·github