算法思想:

遍历序列,当前元素比前一元素小时,交换他们,这样一次遍历之后,最大元素出现在序列尾端,遍历n次之后序列即为有序序列。

算法实现:

 1 void bubble_sort(int A[],int n )
 2 {
 3     int end = n-2;
 4     while ( end > 0 )
 5     {
 6         int pos = -1;
 7         for( int i = 0 ; i <= end; i ++ )
 8         {
 9             if( A[i] > A[i+1] )
10             {
11                 swap(A[i],A[i+1]);
12                 pos = i;
13             }
14         }
15         end = pos;
16     }
17 }
View Code

 

算法性能:

平均:O(n2)

最差:O(n2)

最优:O(n)

使用场景:

冒泡排序的性能表现较差,虽然与插入排序相比时间复杂度均为O(n2),但其在实现过程中含有大量的数据比较、移动操作,因此其性能表现甚至无法和插入排序相比。但在对基本有序的序列进行排序时,其性能尚可。

 

 posted on 2014-07-15 18:38  stormli  阅读(151)  评论(0)    收藏  举报