冒泡排序(Java)

基本思想

  1. 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
  2. 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就"沉"到数组第N-1 个位置。
  3. 如此循环 (N-1)次,每次循环需要比较的个数 N 都减 1。当 N = 0 时结束。

代码实现

java 复制代码
public static void bubbleSort(int[] arr) {
    for (int times = arr.length - 2; times > 0; times--) {
        for (int pivot = 0; pivot <= times; pivot++) {
            if (arr[pivot] > arr[pivot + 1]) {
                int temp = arr[pivot];
                arr[pivot] = arr[pivot + 1];
                arr[pivot + 1] = temp;
            }
        }
    }
}

算法复杂度

假设排序的元素个数为 n,则需要循环 n-1 次,每次比较次数都减1也就是说一次循环中最多比较n-1次 最少比较1次。所以 T(n) = n(n+1)/2O(n) = n²

相关推荐
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
zander2584 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
2601_955759884 小时前
如何降低 Claude API 批量生产返工率
大数据·人工智能·算法
無限進步D4 小时前
Java 函数式编程(Lambda)
java·开发语言
rannn_1114 小时前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发
ly76894 小时前
分布式一致性算法详解:从 2PC、3PC 到 Paxos、Raft、ZAB
分布式·算法
lv__pf4 小时前
Spring配置类解析 【TL spring 11】
java·前端·spring
zhougl9964 小时前
Java Spring Boot 爬虫技术全面介绍
java·spring boot·爬虫
阿维的博客日记4 小时前
保姆级教程-BBPE分词算法
算法·bbpe
奥莱维4 小时前
【无标题】
java·前端·javascript