排序算法-冒泡排序(含C语言代码示例)

一、算法介绍

冒泡排序是一种简单的排序算法,其核心思想是重复地遍历待排序列表,比较并交换相邻元素,使得较大的元素逐渐"冒泡"到列表的末尾,而较小的元素则逐渐上浮至列表的前端。该算法的名字源于类比元素的移动过程,就像水泡逐渐上浮一样。冒泡排序的基本步骤包括比较相邻元素、交换元素、遍历整个列表、重复多轮直到排序完成。

冒泡排序的历史可以追溯到1956年,由于其简单直观的思想,它早在计算机科学的早期就被提出并应用。尽管冒泡排序的时间复杂度为O(n^2),并不是最有效的排序算法,但它仍然在教学和理论研究中有着重要的地位。冒泡排序的主要优点是实现简单,适用于小型数据集或部分已排序的情况。然而,在大规模数据集上,其效率相对较低,因此在实际应用中更常使用其他更为高效的排序算法,如快速排序或归并排序。冒泡排序的概念对理解和学习排序算法具有启发作用,为后续更复杂的排序算法打下了基础。

二、代码示例

cpp 复制代码
void bubble(int *index, int length)
{
    int i, j, temp;
    for (i = 0; i < length - 1; i++)
        for (j = 0; j < length - 1 - i; j++)
            if (index[j] > index[j + 1]) {
                temp = index[j];
                index[j] = index[j + 1];
                index[j + 1] = temp;
            }
}
相关推荐
wabs66611 小时前
关于图论【卡码网117.软件构建的思考】
数据结构·算法·软件构建·图论·卡码网
mifengxing12 小时前
LeetCode 41.缺失的第一个正数|Hard题O(n)+O(1)最优解法深度解析
java·算法·leetcode·排序算法
Tongzhi202612 小时前
从部署到运维:通芝科技无感考勤一体机的全流程效率解析
运维·数据结构·科技·算法·贪心算法
Wang's Blog13 小时前
AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例
算法
oyguyteggytrrwwwrt14 小时前
自制交叉线路识别算法
算法
手写码匠14 小时前
华为云Flexus+DeepSeek征文|Dify 多智能体协同编排实战:R1 规划 + V3 执行,构建企业 Agent 团队
人工智能·深度学习·算法·aigc
晓天衡宇•评测社区15 小时前
FSR-Bench 前沿科学推理榜单发布:GPT-5.5 居首,“会推理”未必“能答对”
算法
程序喵大人16 小时前
【C++进阶】STL算法与函数对象 - 02 sort为什么需要随机访问迭代器
开发语言·c++·算法
hanlin0317 小时前
动态规划专练:力扣第121、122题
笔记·算法·leetcode
To_OC17 小时前
LC 74 搜索二维矩阵:换皮的二分查找,我居然一开始没看出来
javascript·算法·leetcode