8.21_冒泡排序

冒泡排序是一种基于交换的排序算法,通过两两比较并交换元素位置实现排序。文章详细解释了冒泡排序的算法思路,包括两层循环的含义,以及如何通过标志位优化算法,减少不必要的交换。在性能分析中,提到了冒泡排序在最好和最坏情况下的时间复杂度,并指出时间复杂度并非简单的循环嵌套关系。
摘要由CSDN通过智能技术生成

冒泡排序是基于 "交换" 的排序:
根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。

 

 

 

 

 

算法思路分析:

第一个 for 循环的含义是:n 个元素,最多需要处理 n-1 次。(不同元素的层面)
第二个 for 循环的含义是:这次的处理中,从右往左,不断地将这次 for 循环范围内的最小值
转移到左边。 (具体某一次的处理过程)

第一趟处理(冒泡)的结果是将元素最小值移到了最左边A[0],
第二趟是将整体第二小的元素移到了A[1]。(也是该次 for 循环元素范围的最小值)
……
每次处理结束后,都需要判断一下这一次的处理过程是否发生了交换,如果没有可以直接结束方法,
因为此时表已经有序了。( flag 标志 )=> 只要发生了一次交换值即可为 true.
 

 

 

算法性能分析:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值