冒泡算法

一个比较笨的算法,但是却是经常笔试的一道题。看了很多次,可惜却不能很快的写出来。今天写了一个,细细分析一下,以备以后察看。

void BubbleSort(int r[],int n)

 

{

     int i,j,temp;

     int exchange;

     for(i=0;i<n-1;i++)

     {   

         exchange = 0;

         for(j=0;j<n-i-1;j++)

         {

              if(r[j]>r[j+1])

              {

                   temp=r[j];

                   r[j]=r[j+1];

                   r[j+1]=temp;

                   exchange=1;

              }

         }

              if(!exchange)

                   return;

     }

}

1、先说i=0的时候,

   是将最大的数排到最后,通过j的循环来实现,循环完时,将最大的数排在了最后

2、i=1时的时候,

   就不考虑那个最大的数了,所以j的循环上限就会少一个i。

   一次类推i递增的情况。

exchange是用来判断如果一趟下来没有元素进行交换,说明排序已经完成,不用继续进行i的循环了。所以就直接退出。

    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值