冒泡排序(Bubble Sort)

原理

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的列表,比较每对相邻的元素,并按照顺序交换它们,直到整个列表排序完成。这个算法的名称由于排序过程中较小的元素会逐渐"浮"到列表的顶部,而得名。

冒泡排序的基本思想是通过相邻元素的比较和交换,将较大的元素逐渐从底部移动到顶部,从而实现排序。具体步骤如下:

  1. 从列表的第一个元素开始,依次比较相邻的两个元素。
  2. 如果顺序不正确(较大的元素在前),则交换这两个元素的位置。
  3. 继续向后遍历列表,重复执行步骤1和步骤2,直到到达列表的末尾。
  4. 重复上述步骤,直到列表中的所有元素都排序完成(没有需要交换的元素)。

冒泡排序的时间复杂度为O(n^2),其中n是列表的长度。尽管冒泡排序是一种简单的排序算法,但对于较大的列表来说,它的性能相对较差。因此,在实际应用中,通常会选择更高效的排序算法来进行排序操作。

示例

以下代码演示了如何使用Java实现冒泡排序。在 bubbleSort 方法中,我们使用两个嵌套的循环来遍历并比较相邻的元素,并根据需要进行交换。在 main 方法中,我们创建一个整数数组,并调用 bubbleSort 方法对其进行排序。最后,我们打印排序后的数组。

java 复制代码
public class BubbleSort {
    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 (arr[j] > arr[j + 1]) {
                    // 交换arr[j]和arr[j+1]的位置
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(arr);
        System.out.println("排序后的数组:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}
相关推荐
Old Uncle Tom4 分钟前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆14 分钟前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移16 分钟前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业37 分钟前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
智者知已应修善业3 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
JasmineX-13 小时前
数据结构(笔记)——双向链表
c语言·数据结构·笔记·链表
.5484 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove4 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊4 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf5 小时前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源