常见排序算法:冒泡排序算法

本文详细介绍了冒泡排序的原理,包括外层循环优化和内层循环的比较交换过程。通过逐步解析,展示了冒泡排序如何稳定地将最大元素逐步移到数组末尾。最后,提到了冒泡排序的时间复杂度和空间复杂度。

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

原理:

1.i,j分别代表循环的索引编号,i表示对整个数组的循环遍历,j表示临时循环索引。程序进入冒泡排序函数中,首先最外层循环应是i索引遍历整个数组,即for(i=0;i<lenth;i++)。但是对于内层比较的元素只剩一个时,它的值已经是排序好了的。即j=0处的值已经是在j=1时进行比较交换后的结果了。因此没有必要进行i=lenth-1时的循环比较。因此最外层循环可以优化为for(i=0;i<lenth-1;i++)。

2.当i等于0时,j表示的临时循环索引从0开始一直到length-2处。即内层循环应该为for(j=0;j<lenth-1;i++),当j=length-2时,j+1=length-1,即最后一个元素。

3.在该循环体中比较a[j]与a[j+1]的大小,如果a[j]>a[j+1],则交换两个元素,即j+1得位置存放较大值,j处存放较小值。if(a[j]>a[j+1])

{swap(a[j],a[j+1]);}。swap为c++内置交换函数,可以直接调用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值