C语言 冒泡排序法总结汇总

冒泡排序法

如果有n个数进行冒泡排序,那么需要经过n-1趟排序,第一趟n-1次两两比较,第n-1趟进行1次两两比较,即第j趟进行n-j次两两比较。趟数决定了比较的次数,用两个for循环联系起来,当然也有其他的办法,后续补充。
如图所示:
在这里插入图片描述
代码:

#include <stdio.h>

int main() {

    int i, j, t, a[10] = {3,4,6,5,1,7,8,2,9,0};     //定义行列和十个数
    for (i = 0; i < 10; i++)  //变量i表示比较的趟数
    for (i = 0; i < 9; i++)	 //变量j表示每趟两两比较的次数
        for (j = 0; j < i-j; j++)
            if (a[j] > a[j + 1]) {
                t = a[j];
                a[j] = a[j + 1];		//交换前后数值
                a[j + 1] = t;
            }

    printf("output :\n");
    for (int i = 0; i < 10; i++) {	//输出冒泡排序后的数字
        printf("%3d", a[i]);  //输出的数字占据三列
    }
}


注意:
for (j = 0; j < i-j; j++)这里也可以写j<10,因为j不会超过j-i, for (j = 0; j < 10; j++),但是为了减小时间复杂度,所以写成i-j.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微莱羽墨

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值