跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C算法

C 语言冒泡排序算法原理与实现

冒泡排序是一种基础的交换排序算法,通过重复比较相邻元素并交换错误顺序来将最大值逐步移至数组末端。当某轮遍历未发生交换时算法终止。提供完整的 C 语言代码实现,包含边界处理与优化标记,并以具体数组为例演示了执行过程。该算法适用于小规模数据、内存受限环境及教学场景,因其逻辑直观但效率较低,不适合大规模数据排序。

HadoopMan发布于 2026/2/27更新于 2026/9/973 浏览
C 语言冒泡排序算法原理与实现

算法原理

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

代码实现

#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] 为例:

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

适用场景

  1. 小规模数据排序
  2. 内存受限环境
  3. 教学示例(算法原理直观)

目录

  1. 算法原理
  2. 代码实现
  3. 执行过程示例
  4. 适用场景

更多推荐文章

查看全部
  • 阿里 RynnBrain 具身智能模型:30B MoE 时空记忆架构与机器人开发实战
  • OD 机试真题:机器人活动区域
  • C++ 实现自定义 String 类:告别 C 字符串陷阱
  • Vivado 基础使用指南:D 触发器设计与烧录
  • Web 虚拟卡销售店铺实现方案
  • 宇树 G1 机器人有线与无线连接开发指南
  • n8n AI 自动化流程编排平台部署与使用实战
  • 从零搭建 AI 系统权限控制系统
  • C++ 静态成员与非静态成员详解
  • 红黑树从概念到手撕实现:平衡树的工程取舍与核心逻辑
  • openJiuwen 开源 Agent 平台架构设计与企业级部署实战
  • OpenClaw 联网工具配置指南:提升 AI 实时信息获取能力
  • 论文 AI 检测率高如何免费降低?实用方案汇总
  • Python 调用百度智能云 API 进行文本情感分析
  • AI Agent 五层全能架构解析:从 OpenClaw 到 Claude Code
  • Win10 升级后频繁弹出 Copilot 窗口?彻底禁用与关闭方法
  • 设计一个支持万人并发抢购的秒杀系统架构方案
  • 基于 Java 和 Spring Boot 的驾校在线学习与考试系统设计
  • 具身智能与视觉:机器人如何“看懂”世界?
  • 大模型在安防领域的实践应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online