美文网首页
排序算法(2)-冒泡排序

排序算法(2)-冒泡排序

作者: 君去不知何时归 | 来源:发表于2019-03-21 15:36 被阅读0次

原理:

冒泡排序的思想,是让最大的数浮动到数组最后的位置,其次大的数浮动到数组倒数第二个位置……

当然,你也可以从大到小排序,也可以从后向前冒泡。其特征操作是相邻元素的比较和交换。


排序过程

举例说明:要排序数组:{10,3,7,4,9,2};   

第一趟排序:

第一次排序:10和3比较,10大于3,交换位置:  3   10  7  4   9  2

第二次排序:10和7比较,10大于7,交换位置:3   7  10  4   9   2

第三次排序:10和4比较,10大于4,交换位置:  3  7  4  10  9  2

第四次排序:10和9比较,10大于9,交换位置:3  7  4  9  10  2

第五次排序:10和2比较:10大于2,交换位置:  3  7  4  9  2  10

第一趟总共进行了5次比较, 排序结果:      3  7  4  9  2  10

---------------------------------------------------------------------

第二趟排序:

第一次排序:3和7比较,3小于7,不交换位置:3  7  4  9  2  10

第二次排序:7和4比较,7大于4,交换位置:  3  4  7  9  2  10

第三次排序:7和9比较,7小于9,不交换位置:3  4  7  9  2  10

第四次排序:9和2比较,9大于2,交换位置:  3  4  7  2  9  10

第二趟总共进行了4次比较, 排序结果:      3  4  7  2  9  10

---------------------------------------------------------------------

第三趟排序:

第一次排序:3和4比较,3小于4,不交换位置:  3  4  7  2  9  10

第二次排序:4和7比较,4小于7,不交换位置:3  4  7  2  9  10

第三次排序:7和2比较,7大于9,交换位置:  3  4  2  7  9  10

第二趟总共进行了3次比较,排序结果:         3  4  2  7  9   10

---------------------------------------------------------------------

第四趟排序:

第一次排序:3和4比较,3小于4,不交换位置:3  4  2  7  9   10

第二次排序:4和2比较,4大于2,交换位置:  3  2  4  7  9  10

第二趟总共进行了2次比较,排序结果:       3  2  4  7  9  10

---------------------------------------------------------------------

第五趟排序:

第一次排序:3和2比较,3大于2,交换位置:  2  3  4  7  9  10

第二趟总共进行了1次比较,排序结果:  2  3  4  7  9  10

---------------------------------------------------------------------


代码实现


时间复杂度:其外层循环执行 N - 1次。内层循环最多的时候执行N次,最少的时候执行1次,平均执行(N+1)/2次。

所以循环体内的比较交换约执行(N - 1)(N + 1) / 2 = (N^2 - 1)/2(其中N^2是仿照Latex中的记法,表示N的平方)。按照计算复杂度的原则,去掉常数,去掉最高项系数,其复杂度为O(N^2)。

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-冒泡排序

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

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • 常用排序算法实现

    1、常见排序算法大致有以下几种:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序2、各种排序算法...

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • Sort Algorithm

    排序算法 首先要讨论的是O(n^2)的算法。主要有冒泡排序,选择排序,插入排序。冒泡排序比较常见这里不细说。 ①选...

  • 排序算法

    排序算法 1、冒泡排序: 2、插入排序 3、希尔排序 4、堆排序 5、归并排序

  • 排序算法总结

    n^2的算法:冒泡排序,选择排序,插入排序n^1.3的算法:希尔排序nlogn的算法:归并排序、快速排序 泛型的使...

网友评论

      本文标题:排序算法(2)-冒泡排序

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