交换排序--冒泡排序(详细分析及代码实现,超划算)

本文详细介绍了冒泡排序的概念、工作原理,并通过图解展示了排序过程。此外,还提供了一个带优化的C++代码实现,指出当趟数等于数据个数减一时,已排序完成。冒泡排序具有稳定性,但在最坏情况下时间复杂度为O(n^2)。
摘要由CSDN通过智能技术生成

一.前言

  交换排序总思想:数据两两比较,发生逆序则交换,直到整个数据有序。交换排序又可以分为冒泡排序快速排序。本文讲述有关冒泡排序的知识。


二.何为冒泡

  如果将数据从小到大进行排序,那么大的将会往下沉,小的将会往上冒。因为每一趟都会选出一个最大的放在底部,较小的数据就会向前移动,就像冒气泡一样,所以叫冒泡排序。


三.冒泡排序思想

  对存放原始数据的数组,按从前往后的方向进行多次扫描,每一次扫描称为一趟。当发现比较的两个数据发生逆序时,就将这两个数据互换,直到整个数据有序。


四.过程分析

冒泡排序图解:
  现在要对如下数据进行从小到大排序,将其分为有序组和无序组,初始有序组数据个数为0:
在这里插入图片描述
第一趟:
在这里插入图片描述
  第一趟从无序组中选出一个最大的数据放到有序组。五个数据,第一趟,需要比较四次无序组数据个数变为4个,有序组数据变为1个,如下:
在这里插入图片描述
  
第二趟:
在这里插入图片描述
  第二趟从无序组中选出一个最大的数据放到有序组。5个数据,第二趟,需要比较三次无序组数据个数变为3个,有序组数据变为2个,如下:
在这里插入图片描述
第三趟:
在这里插入图片描述
  第三趟从无序组中选出一个最大的数据放到有序组。5个数据&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值