接上一篇文章
上一篇文章我们介绍了冒泡算法的一些概念和演示效果图,并没有涉及深层次的时间复杂度等概念。下面我们来看看冒泡算法的时间复杂度。
时间复杂度
什么是时间复杂度?
定性的描述算法的运行时间,通常以大O表示。
时间复杂度怎么计算?
冒泡算法的时间复杂度是和算法中相邻两个数据的比较次数和移动次数成正比的。具体如下:
数据个数 | 比较次数 | 最大移动次数 | 最小移动次数 |
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 1 | 1 | 0 |
3 | 3 | 3 | 0 |
4 | 6 | 6 | 0 |
5 | 10 | 10 | 0 |
10 | 45 | 45 | 0 |
N | 1/2N(N-1) | 1/2N(N-1) | 0 |
所以根据时间复杂度的概念,冒泡算法的时间复杂度为O(N^2)
冒泡算法的优缺点
优点:简单,空间复杂度低,稳定
缺点:时间复杂度高,效率低
算法效果展示
说明
本文仅仅展示该算法的效果,方便大家直观的理解。为了不增加大家理解的负担,故没有展示代码。如果您对代码感兴趣,可以进入我的CSDN免费下载源码。
源码展示的效果可能您不满意,不过没关系,你可以在源码的基础上修改
如果您对可视化算法也感兴趣,赶紧和我一起学习吧