C语言冒泡排序对10个数字进行大小排序

本文详细介绍了冒泡排序的实现过程,通过一个具体的例子34125613来演示排序步骤。每轮比较减少一次比较次数,逐步找到最大值并将其移到末尾。文章还给出了冒泡排序的C语言实现代码,帮助读者理解算法的内部逻辑。
摘要由CSDN通过智能技术生成

首先来看实现思路:

为了方便理解我们就任意取4个数字 :34 12 56 13

第一轮是我们第一个数字和第二个数字比较,如果左边比右边大就把大的数字放到右边,

这里是34和12比较,比12大,然后两个就交换位置变成了12 34 56 13。然后呢,34又和56比较,

比56小,不交换位置,56又和13比较,比13大,交换位置变成了

12 13  34 56 第一轮我们就找到了最大的数字56。后面第二轮再如此重复,每次比较的次数要少

1,因为我们每比较一轮,最右边就得到一个最大的数,就不用和它比较了。

int i,j,t,a[10];    //定义变量及数组为基本整型
    printf("请输入10个数:\n");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);    //从键盘中输入10个数
        for(i=0;i<9;i++)      //变量i代表比较的趟数
        for(j=0;j<9-i;j++)    //变最j代表每趟两两比较的次数
         if(a[j]<a[j+1])
         {
          t=a[j];
          a[j]=a[j+1];
          a[j+1]=t;         //产利用中间变童实现两值互换
         }
            
         printf("排序后的顺序是:\n");
        for(i=0;i<10;i++)
            printf("%5d",a[i]);    //将冒泡排序后的顺序输出
            printf("\n");

我一直爱懵的一点:定义数组的时候,比如说:a[5],只是说我们里面有5个元素,但是我们取出来出来的时候数组下标要从a[0]开始,也就是下标比定义的空间数字少1。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值