冒泡排序-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、动态理解

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

相关推荐
折哥的程序人生 · 物流技术专研18 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
一条泥憨鱼18 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
云烟成雨TD18 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉18 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
周航宇JoeZhou19 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
好家伙VCC19 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐19 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
想吃火锅100519 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
焦虑的说说20 小时前
秒杀系统设计方案
java
云絮.20 小时前
数据库操作
数据库·mysql·算法·oracle