冒泡与选择算法区别

1.冒泡

冒泡就是 1   2  3   4  5 6 7 8 9  

             2  1   3   4  5  6  7  8   9

             2   3   1  4  5   6  7  8  9 

            2    3   4   1  5  6  7  8 9

           2     3     4  5   1   6  7  8  9

    。。。。。。。。。

          2    3  4  5  6 7  8  9   1

        这是第一次循环  如此循环9次  就变成

       9  8  7  6  5  4  3  2   1

   代码如下  这里是降序,要是想升序只需要把if( a[j] <a[j+1])改成if( a[j] >a[j+1])

 for( int i =0 ; i《10; i++)

for( int j = 0; j < 10 - i -1; j ++){

if( a[j] <a[j+1])

{

   int s=a[j] + a[j+1];

 a[j] = s - a[j];

a[j+1] = s - a[j];

}

}

 

2.选择排序

  1  2  3 4 5

   2  1  3  4  5

   3  1   2  4  5

   4    1  2  3  5

   5     1  2  3   4

 这是拿第一个与后面的 都比较一次,每当不符合条件时候就交换数值。

代码

这里是升序,要是想降序只需要 把if(a[i] >a[j]) 改成if(a[i] <a[j])

for( int i =0 ; i《10; i++)//这里是 10 是 数组的个数

for( int j = 0; j < 10  ; j ++){//10 数组的个数

if( a[i] >a[j])

{

   int s=a[i] + a[j];

 a[i] = s - a[j];

a[j] = s - a[i];

}

}

转载于:https://www.cnblogs.com/fgyqbs/p/3841319.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值