C语言冒泡排序

 

 

冒泡排序是一种简单的排序算法,通过重复比较相邻元素并交换位置,使较大的元素逐渐“浮”到数组末尾。其核心思想如下:

 

1. 比较与交换:遍历数组,比较相邻元素,若前者大于后者则交换。

2. 多轮遍历:重复上述过程,每轮确定一个最大元素的位置,后续遍历无需比较已排序部分。

3. 时间复杂度:平均和最坏情况为O(n²),最好情况(已排序)为O(n),属于稳定排序。

 

 经典C语言冒泡排序代码

include <stdio.h>

void bubbleSort(int arr, int n) {

    for (int i = 0; i < n - 1; i++) { // 外层循环控制轮数

        for (int j = 0; j < n - i - 1; j++) { // 内层循环处理未排序部分

            if (arrj > arrj + 1) { // 比较相邻元素

                // 交换元素

                int temp = arrj;

                arrj = arrj + 1;

                arrj + 1 = temp;

            }

        }

    }

}

int main() {

    int arr = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr) / sizeof(arr0);

 

    printf("原始数组:\n");

    for (int i = 0; i < n; i++) {

        printf("%d ", arri);

    }

    bubbleSort(arr, n);

    printf("\n排序后数组:\n");

    for (int i = 0; i < n; i++) {

        printf("%d ", arri);

    }

    return 0;

}

 

 代码解析

1. 外层循环 (`i`):共执行`n-1`次,每轮确定一个最大元素的位置。

2. 内层循环 (`j`):处理未排序部分(前`n-i`个元素),比较`arrj`和`arrj+1`。

3. 交换操作:若顺序错误,使用临时变量`temp`交换相邻元素。

 

 示例输出

原始数组:

64 34 25 12 22 11 90 

排序后数组:

11 12 22 25 34 64 90

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值