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

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

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

HadoopMan发布于 2026/2/27更新于 2026/10/25108 浏览
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, , , };
     n = (arr) / (arr[]);
    bubbleSort(arr, n);
    ();
    ( i=; i < n; i++) (, arr[i]);
     ;
}
22
11
90
int
sizeof
sizeof
0
printf
"排序结果:"
for
int
0
printf
"%d "
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. 适用场景

更多推荐文章

查看全部
  • 手写 C++ TCP 服务器:自定义协议与粘包处理实战
  • 大模型时代 AI 产品经理的未来之路
  • 大模型微调技术对比:PEFT 原生实现与 LLaMA-Factory 框架
  • Java 代码块详解:实例、静态与同步
  • MyEMS 开源能源管理系统技术架构与应用
  • Spring Boot 安全认证与授权核心解析
  • Flutter 三方库 wallet_connect 的鸿蒙适配指南:Web3 钱包连接与 DApp 授权
  • WebGoat JWT 漏洞实战:第六关与第十一关逻辑越权解析
  • 基于 LLaMA-Factory 和 LoRA 微调 GPT-OSS-20B 模型教程
  • 前端地图开发:标记点(Marker)的添加、删除、拖拽及事件绑定
  • Godot Copilot AI 代码生成插件安装与使用指南
  • 宇树 G1 人形机器人强化学习训练配置与奖励函数解析
  • GLM-4.6V-Flash-WEB vs InternVL:视觉模型部署效率对比
  • ChatGPT Prompt Hacker 技巧:优化简历通过 AI 筛选
  • Pyarmor 跨版本兼容指南:Python 2.7 至 3.15 支持方案
  • GitHub Copilot 编程助手完整使用教程
  • 预训练语言模型与 BERT 实战应用
  • C 语言实现 AI 推理:量化、算子融合与内存映射实战
  • 自然语言处理在金融领域的应用与实战
  • SkyWalking 全链路监控实战:Spring Cloud、Dubbo、RocketMQ 集成指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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