首页 > 其他 > 详细

冒泡排序

时间:2014-07-16 18:23:48      阅读:271      评论:0      收藏:0      [点我收藏+]

算法思想:

遍历序列,当前元素比前一元素小时,交换他们,这样一次遍历之后,最大元素出现在序列尾端,遍历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] then
12                 swap A[i] A[i+1]
13                 pos = i
14         end  = pos

 

算法性能:

平均:O(n^2)

最差:O(n^2)

最优:O(n)

使用场景:

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

STL实现:

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

冒泡排序,布布扣,bubuko.com

冒泡排序

原文:http://www.cnblogs.com/stormli/p/bubble_sort.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!