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、教学示例(算法原理直观)

相关推荐
weixin_39544891几秒前
mult_yolov5_post_copy.c_cursor_0205
c语言·python·yolo
执风挽^17 分钟前
Python基础编程题2
开发语言·python·算法·visual studio code
Z9fish26 分钟前
sse哈工大C语言编程练习20
c语言·开发语言·算法
晓131332 分钟前
第六章 【C语言篇:结构体&位运算】 结构体、位运算全面解析
c语言·算法
iAkuya38 分钟前
(leetcode)力扣100 61分割回文串(回溯,动归)
算法·leetcode·职场和发展
梵刹古音41 分钟前
【C语言】 指针与数据结构操作
c语言·数据结构·算法
VT.馒头1 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
刘琦沛在进步1 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
CoderCodingNo2 小时前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
大闲在人2 小时前
7. 供应链与制造过程术语:“周期时间”
算法·供应链管理·智能制造·工业工程