java的冒泡排序算法

冒泡排序是一种简单的排序算法,通过重复遍历待排序序列,比较相邻元素并在必要时交换位置,最终实现排序。以下是Java实现的详细说明:

核心原理

  • 比较相邻元素‌:从序列第一个元素开始,逐对比较相邻元素的大小。
  • 交换条件‌:若前一个元素大于后一个元素(升序排序),则交换两者位置。
  • 重复迭代‌:每轮排序将最大元素"冒泡"到序列末尾,后续迭代逐步减少已排序的元素。

代码实现

public static void bubbleSort(int\[\] arr) {

int n = arr.length;

for (int i = 0; i < n - 1; i++) {

for (int j = 0; j < n - i - 1; j++) {

if (arrj > arrj + 1) {

// 交换元素位置

int temp = arrj;

arrj = arrj + 1;

arrj + 1 = temp;

}

}

System.out.println("第" + (i + 1) + "趟:" + Arrays.toString(arr));

}

}

时间复杂度

  • 最佳情况‌:O(n)(数组已排序)
  • 平均情况/最坏情况‌:O(n²)(数组完全逆序)
相关推荐
纪念 2292 天前
数据结构排序(一)
数据结构·算法·排序算法
码行山野赴时序归途4 天前
从暴力到最优:三道 C 语言入门题的解法思路
c语言·开发语言·数据结构·算法·leetcode·排序算法
晚风醉蝶4 天前
1-18-基数排序-RadixSort
python·算法·排序算法·基数排序
小七在进步4 天前
数据结构:快速排序
数据结构·算法·排序算法
wuyk5554 天前
9.冒泡排序:像鱼缸泡泡一样的简单排序算法
开发语言·stm32·单片机·算法·排序算法
LuminousCPP5 天前
数据结构-二叉树(三):堆复杂度证明与 Top-K 问题|错位相减推导 + 海量数据内存优化
c语言·数据结构·笔记·排序算法
1000世界小札6 天前
排序算法全景总结:从 O(n²) 到 O(n log n),再到线性时间(附完整对比与选型指南)
数据结构·算法·排序算法
csdn_aspnet7 天前
C# 第k个最小元素(K’th Smallest Element)
算法·c#·排序算法
万法若空8 天前
CSP-J/S 排序算法完整专题训练题单
数据结构·算法·排序算法
凉茶钱8 天前
【数据结构】排序(快排,选择,直接插入,希尔)
数据结构·算法·排序算法