首页 > 代码库 > 冒泡排序

冒泡排序

算法思想:

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

算法实现:

 
 1 BUBBLE_SORT(A) 2     n = length of A 3     end = n-2 4  5     while end > 0 6     do 7         pos = -1 //最后一次交换的位置    8  9         for i = 0, end 10         do   11             if A[i] > A[i+1] then12                 swap A[i] A[i+1]13                 pos = i14         end  = pos

 

算法性能:

平均:O(n^2)

最差:O(n^2)

最优:O(n)

使用场景:

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

STL实现:

stl中貌似没有使用冒泡算法。