C语言---排序算法1---冒泡排序法

文章目录

算法原理

冒泡排序(Bubble Sort)是一种基础的交换排序算法。其核心思想是重复比较相邻元素,若顺序错误则交换,通过多轮遍历将最大值逐步"冒泡"到数组末端。算法结束条件为某轮遍历未发生任何交换,表明数组已有序。

代码实现

bash 复制代码
#include <stdio.h>

// 冒泡排序函数
void bubbleSort(int arr[], int n) {
    if (n <= 1) return; // 边界条件处理

    for (int i = 0; i < n - 1; i++) { // 外层循环控制轮数
        int swapped = 0; // 优化标记
        for (int j = 0; j < n - i - 1; j++) { // 内层循环比较相邻元素
            if (arr[j] > arr[j+1]) {
                // 交换元素
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
                swapped = 1; // 标记发生交换
            }
        }
        // 若本轮无交换则提前终止
        if (!swapped) break;
    }
}

// 测试代码
int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);

    bubbleSort(arr, n);
    printf("排序结果: ");
    for (int i=0; i < n; i++)
        printf("%d ", arr[i]);
    return 0;
}

执行过程示例

以数组5, 1, 4, 2, 8为例:

bash 复制代码
第1轮:比较交换后 → [1,4,2,5,8](5上浮)
第2轮:比较交换后 → [1,2,4,5,8](4上浮)
第3轮:无交换 → 提前终止

适用场景

1、小规模数据排序

2、内存受限环境

3、教学示例(算法原理直观)

相关推荐
ZhengEnCi1 天前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
罗西的思考1 天前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
蹊黎1 天前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
夜不会漫长1 天前
C++:红黑树
数据结构·算法
爱聊灵光的维C1 天前
从看见世界到重构认知:在视觉与硬件的交汇处,寻找我们这代人的北极星
c语言·物联网·计算机视觉·重构·硬件工程·射频工程
AI+程序员在路上1 天前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
AI备案指南-满满1 天前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
Ramble_Naylor1 天前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
秋天的怀念_David1 天前
算法一千零一夜 · 第二十三夜 电力民生写成的曲线
java·程序人生·算法
不一样的故事1261 天前
NB/T 47013.8-2015 附录D 吸枪技术
人工智能·经验分享·算法