冒泡排序(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²

相关推荐
TracyCoder1236 小时前
LeetCode Hot100(15/100)——54. 螺旋矩阵
算法·leetcode·矩阵
开发者小天6 小时前
python中For Loop的用法
java·服务器·python
flushmeteor6 小时前
JDK源码-基础类-String
java·开发语言
毕设源码-钟学长7 小时前
【开题答辩全过程】以 基于ssm的空中停车场管理系统为例,包含答辩的问题和答案
java
不愿是过客7 小时前
java实战干货——长方法深递归
java
u0109272717 小时前
C++中的策略模式变体
开发语言·c++·算法
2501_941837268 小时前
停车场车辆检测与识别系统-YOLOv26算法改进与应用分析
算法·yolo
小北方城市网8 小时前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
探序基因9 小时前
单细胞Seurat数据结构修改分群信息
数据结构
六义义9 小时前
java基础十二
java·数据结构·算法