首页 > 代码库 > 冒泡与选择算法区别

冒泡与选择算法区别

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];

}

}