起泡法的使用

例子:随机打印十个从大到小排列的数

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

       int a[10],temp,i,j;

       srand(time(NULL));

       for(i=0;i<10;i++)

       a[i]=rand()%11;

        for(j=0;j<9;j++)//红色字体为起泡法的使用

        for(i=0;i<9-j;i++)

        if(a[i]>a[i+1])

       {

              temp=a[i];

              a[i]=a[i+1];

              a[i+1]=temp;

        }   

       printf("从小到大为\n");

       for(i=0;i<=9;i++)

       printf("%d  ",a[i]);

       printf("\n");   

}

 

定义变量i控制回数,变量j控制比较的次数

 

i=0,第0回,j=0,j<9,j++, 比较了9次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

第4次比较: a[4]和a[5]比较把大值放到a[5];

第5次比较: a[5]和a[6]比较把大值放到a[6];

第6次比较: a[6]和a[7]比较把大值放到a[7];

第7次比较: a[7]和a[8]比较把大值放到a[8];

第8次比较: a[8]和a[9]比较把大值放到a[9];

 

i=1,第1回,j=0,j<8,j++, 比较了8次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

第4次比较: a[4]和a[5]比较把大值放到a[5];

第5次比较: a[5]和a[6]比较把大值放到a[6];

第6次比较: a[6]和a[7]比较把大值放到a[7];

第7次比较: a[7]和a[8]比较把大值放到a[8];

 

i=2,第2回,j=0,j<7,j++, 比较了7次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

第4次比较: a[4]和a[5]比较把大值放到a[5];

第5次比较: a[5]和a[6]比较把大值放到a[6];

第6次比较: a[6]和a[7]比较把大值放到a[7];

 

i=3,第3回,j=0,j<6,j++, 比较了6次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

第4次比较: a[4]和a[5]比较把大值放到a[5];

第5次比较: a[5]和a[6]比较把大值放到a[6];

 

i=4,第4回,j=0,j<5,j++, 比较了5次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

第4次比较: a[4]和a[5]比较把大值放到a[5];

 

i=5,第5回,j=0,j<4,j++, 比较了4次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

第3次比较: a[3]和a[4]比较把大值放到a[4];

 

i=6,第6回,j=0,j<3,j++, 比较了3次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

第2次比较: a[2]和a[3]比较把大值放到a[3];

 

i=7,第7回,j=0,j<2,j++, 比较了2次

第0次比较: a[0]和a[1]比较把大值放到a[1];

第1次比较: a[1]和a[2]比较把大值放到a[2];

 

i=8,第8回,j=0,j<1,j++, 比较了1次

第0次比较: a[0]和a[1]比较把大值放到a[1];  (10个数一共比较了9回)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值