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

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

相关推荐
m0_748247558 分钟前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
keep丶11 分钟前
Spring实现Logback日志模板设置动态参数
java·spring·logback
jiayoushijie-泽宣14 分钟前
【基于语义地图的机器人路径覆盖】Radiant Field-Informed Coverage Planning (RFICP)高斯扩散场轨迹规划算法详解
人工智能·算法·3d·机器人
张敬之、42 分钟前
Ribbon源码分析
java·开发语言
骑着王八撵玉兔1 小时前
【持续集成与持续部署(CI/CD)工具 - Jenkins】详解
java·spring boot·后端·spring·servlet·ci/cd·jenkins
Coovally AI模型快速验证1 小时前
【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测
人工智能·算法·yolo·目标检测·机器学习·目标跟踪·无人机
yonuyeung1 小时前
代码随想录算法【Day7】
算法·leetcode·哈希算法
我要学编程(ಥ_ಥ)1 小时前
初始JavaEE篇 —— Maven相关配置
java·java-ee·maven
ss2732 小时前
SSM 进销存系统
java·后端
会功夫的李白2 小时前
讲一个自己写的 excel 转 html 的 java 工具
java·html·excel