美文网首页
快速计算冒泡算法时间复杂度

快速计算冒泡算法时间复杂度

作者: DanielYQ | 来源:发表于2016-08-11 00:00 被阅读846次

冒泡排序程序简单,基本大家都会,今天讲下如何计算其时间复杂度。算法比较简单,简单讲下大家应该就明白了。

最坏情况:

最坏的情况就是所有的元素都要对换,比如希望排出从小到大的顺序,而数组却是从大到小排列:5,4,3,2,1。那么时间复杂度就达到了最大值。
具体计算方法是这样的:一共有5个数字的话,那么冒出的第一个泡需要对换5-1次后放到最后,由于已经找到了最大值放到了最后,冒出的第二个泡就只需要对换5-2次放到倒数第二位了,由于已经找到了最大的两个放到了后面,冒出的第三个泡就只需要对换5-3次了。以此类推,一共需要对换:(5-1) + (5-2) + (5-3) + (5-4)次,相当于一个等差数列求和:1+...+(5-1) ,这里的5可以替换为n,所以最坏情况需要排序(n-1)** n/2,这个就相当于nn,也就是n方了。
简单的想就是冒第i个泡,需要n-i次比较,之所以n-i是因为第一个需要比较n-1次,剩下的不需要和已经冒出的泡比较,所以是n-1-(i-1),也就是n-i了。所有比较次数相加就是时间复杂度了。

冒泡过程:

排序前:5,4,3,2,1
排序第一次找到最大值:4,3,2,1,5
排序第二次找到次大值:3,2,1,4,5
排序第三次找到第3大值:2,1,3,4,5
排序第四次找到第4大值:1,2,3,4,5

相关文章

  • 快速计算冒泡算法时间复杂度

    冒泡排序程序简单,基本大家都会,今天讲下如何计算其时间复杂度。算法比较简单,简单讲下大家应该就明白了。 最坏情况:...

  • 快速排序

    冒泡算法复杂度n的平方,如果排序数据量变大时。排序算法需要的时间非常长,快速排序就是为了减少冒泡算法的复杂度产生的...

  • 算法

    排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速排序代码快速排序的过程、时间复杂度、空间复杂度手写堆...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 算法

    排序算法有哪些? 最快的排序算法是哪个? 手写一个冒泡排序 手写快速排序代码 快速排序的过程、时间复杂度、空间复杂...

  • 简单排序

    排序是基础的算法问题,常见的排序有插入排序、冒泡排序、快速排序等,它们分别有不同的计算复杂度。插入排序和冒泡排序的...

  • C语言十大经典排序算法(动态演示+代码,值得收藏)!

    § 时间、空间复杂度比较 排序算法平均时间复杂度最差时间复杂度空间复杂度数据对象稳定性 1、冒泡排序 算法思想: ...

  • 算法--排序

    排序时间复杂度比较 常见算法如: 冒泡, 选择, 插入, 归并, 快速, 希尔, 堆排序, 属于比较排序 一. 冒...

  • 面试笔记:Java实现冒泡、选择、插入、快速和归并排序

    时间复杂度 冒泡/选择/插入 快速 归并

  • 排序算法学习笔记

    插入排序 算法稳定、时间复杂度为n^2 冒泡排序 算法稳定,时间复杂度为n^2 选择排序 算法不稳定,时间复杂度为...

网友评论

      本文标题:快速计算冒泡算法时间复杂度

      本文链接:https://www.haomeiwen.com/subject/sxijsttx.html