冒泡排序(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)/2,O(n) = n²。

相关推荐
苏打豆11 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
用户13051807121511 小时前
JDBC学习DAY2:从Statement到PreparedStatement
java
蛋蛋的就会顺顺的12 小时前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
老歌老听老掉牙12 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头
周杰偷奶茶12 小时前
【Java】数组的定义和使用(附管理系统实战案例)
java·开发语言
zhangfeng113312 小时前
国产GPU/AI算力芯片现状(修订完整版 · 截至2026年9月
人工智能·算法·ai编程·npu
橙子圆12312 小时前
JUC之集合类不安全
java·开发语言
学代码的CJY13 小时前
从代码出发理解时间复杂度与空间复杂度
数据结构·算法
白帽攻防录13 小时前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt
谢亮_vipxieliang13 小时前
Stream API 不是银弹:常见坑与性能建议
java·开发语言