ID #5702

常见排序算法的实现(四)-冒泡排序

冒泡排序算法的思想:很简单,每次遍历完序列都把最大(小)的元素放在最前面,然后再对剩下的序列从父前面的一个过程,每次遍历完之后待排序序列就少一个元素,当待排序序列减小为只有一个元素的时候排序就结束了.因此,复杂度在最坏的情况下是O(N ^ 2).

void  Swap( int * a,int * b)
  {
     int temp;

    temp=* a;
     * a =* b;
     * b=temp;
}

 //  冒泡排序
 void  BubbleSort( int  array[],int  length)
  {
     //  记录一次遍历中是否有元素的交换
      bool  exchange;
     for  ( int  i =0 ; i<length;++ i)
      {
        exchange =false ;
         for  ( int j = i + 1 ; j <length; ++ j)
          {
             if  (array[j]  <  array[i])
              {
                exchange =true ;
                Swap( & array[j],& array[i]);
            }
        }
         //  如果这次遍历没有元素的交换,那么排序结束
          if  ( false   ==  exchange)
             break ;
    }
}


2011-07-01 18:28
阅读:
I'm VC , Just U know Y
本站部分文章来源于互联网,版权归原作者所有。

延伸阅读:

老调重提,利用SDK实现迷宫算法

几个数字信号处理算法程序

写个过河算法

CRC算法与实现

牛顿和拉格朗日插值算法