经典排序算法——冒泡排序

冒泡排序

基本思想|演示|算法代码|性能

o

基本思想

冒泡排序(Bubble Sort)属于交换类排序,它通过依次比较两个相邻的元素,交换元素位置,将最大(或最小)的元素“浮”到整组数据的一端,每轮比较后缩小比较数据的长度,然后进行新一轮的比较,直到整组数据有序为止。

以数据8、5、2、4、1、7、6、3为例,以下仅展示第一轮比较思想

缩小比较长度后,按照此种排序思想重复排序操作,直到整组数据有序为止

C++标准冒泡排序算法

如果在某轮排序过程中未发生数据交换,则说明整组数据已经处于有序状态,据此我们可以对上述算法进行简单的优化,使其在某轮未发生数据交换时停止接下来的排序操作

以下代码均为冒泡排序算法代码的另外一种写法及其进行简单优化后的版本

C++代码

Python代码

Java代码

冒泡排序是一种稳定的排序算法,平均时间复杂度为O(N2),空间复杂度为O(1)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180822G09SD300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券