冒泡排序(高阶版)

Posted 多米学算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序(高阶版)相关的知识,希望对你有一定的参考价值。

接上一篇文章

上一篇文章我们介绍了冒泡算法的一些概念和演示效果图,并没有涉及深层次的时间复杂度等概念。下面我们来看看冒泡算法的时间复杂度。

冒泡排序(高阶版)

冒泡排序(高阶版)

冒泡排序(高阶版)

冒泡排序(高阶版)


时间复杂度

  1. 什么是时间复杂度?

定性的描述算法的运行时间,通常以大O表示。

  1. 时间复杂度怎么计算?

冒泡算法的时间复杂度是和算法中相邻两个数据的比较次数移动次数成正比的。具体如下:

数据个数 比较次数 最大移动次数 最小移动次数
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免费下载源码。

  • 源码展示的效果可能您不满意,不过没关系,你可以在源码的基础上修改

  • 如果您对可视化算法也感兴趣,赶紧和我一起学习吧

以上是关于冒泡排序(高阶版)的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序改进版(java)

Python版冒泡排序算法

冒泡排序法三部曲终极版の最优的冒泡排序算法

算法:冒泡排序(python版)

Python版冒泡排序算法

冒泡排序-精编版