c语言冒泡排序法

1.概念

当创建一个数组,想要将数组里的元素按从小到大进行排序,我们可以先取出数组的第一位元素,是这第一位从第一位到最后一位进行比较,如果比到比这位元素大的元素那么就取这位大的元素继续进行比较,被取的元素称作“冒泡”,通过这样的方法每次比较虽然不能保证每个数都按从小到大排序好,但能使数组中最大的数排在最后,再缩短数组进行这样排序能使数组每个数都能按从小到大进行排序

2.用图表理解

比如像最简单的一个这样的数列我们可以先将第一个元素取出一个一个地进行比较:

换位代码实现大家应该都知道是:

        for (int j = 0;j < c;j++)
        {
            if (crr[j + 1] < crr[j])
            {
                int temp = crr[j];
                crr[j] = crr[j + 1];
                crr[j + 1] = temp;
            }
        }

其中crr是我创建的数组temp是我创建的元素换位的媒介

要想实现所有元素就需要再套一个for循环可以让数组里每一位都能冒泡以实现数组的排序:

    for (int i = 0; i < a+b-1; i++)
    {
        for (int j = 0; j <a+b - i-1; j++)
        {
            if (c[j] > c[j + 1])
            {
                temp = c[j];
                c[j] = c[j + 1];
                c[j + 1] = temp;
            }
        }
    }

其中a+b=c

通过每次比较缩短数组可以让数组从小到大排序。

3.题目

创建一个乱序数组将此数组进行排序

4.答案&&数组排序模板

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int a, b, temp;
    int c[10] = {0};
    for (int i = 0;i < 10;i++) {
        scanf("%d", &c[i]);
    }
    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9 - i; j++)
        {
            if (c[j] > c[j + 1])
            {
                temp = c[j];
                c[j] = c[j + 1];
                c[j + 1] = temp;
            }
        }
    }
    for (int i = 0;i < 10;i++) {
        printf("%d ", c[i]);
    }
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值