C++排序算法之冒泡排序

本文探讨了C++中冒泡排序算法在最坏情况和最好情况下的时间复杂度。当序列逆序时,冒泡排序执行基本操作的次数为n(n-1)/2,时间复杂度为O(n^2);而序列有序时,时间复杂度为O(n)。平均情况下,时间复杂度依然为O(n^2)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

冒泡排序

思想:通过一系列的“交换”动作完成。首先第一个记录和第二个记录比较,如果第一个大,则二者交换,否则不交换;然后第二个记录和第三个记录比较,如果第二个大,则二者交换,否则不交换..........一直按这种方式进行下去,最终最大的那个记录被交换到了最后,一趟冒泡排序完成。这个过程中,大的记录像一块石头一样“沉底”,小的记录逐渐向上“浮动”,冒泡排序的名字由此而来。

例如:3  6  4  2  1  8  5  7
下面进行第一趟冒泡排序:假设数组下标从0开始
(1) 0号和1号比较,3<6,不交换
结果:3  6  4  2  1  8  5  7
(2) 1号和2号比较,6>4,交换
结果:3  4  6  2  1  8  5  7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值