【算法】冒泡排序

算法系列三:冒泡排序

原理

优化1

优化2

方法实现


原理

每一次遍历全排序把当前趟要排的最大的数排好数组有n个元素,遍历全排序n-1次把数组里的n-1个数都排在当前趟的最后面最大数位置在数组里n-1个数按大小顺序排对到相应的位置,排好后最后一个数也就在要排的位置上(第一个位置)不用排了


优化1

每一趟进去全排序时,对于数组后端已经排好序的不用再去遍历到去判断去排序了,第一趟进去已排好序的个数是0,第二趟进去时排好序的个数是1,第n趟进去时排好序的个数是n-1,即每一趟里要遍历的次数都有在减少,每一趟里面要遍历的次数是原来全遍历次数-已排好序的个数原来的把数组全遍历到全能拿来比较的次数为数组长度-1要减的已排好序的个数等于第几趟数减1(第1趟为0,第2趟为1),这个要减的数刚好等于控制趟数的i,减i就行了

优化2

可能经过某一趟排序后数组就已经全部有序了,不一定要进行n-1趟一定确定全排好序的趟数,我们可以安排一个旗,用来判断此趟里是否有进行排序交换,如果某趟里没有进行排序交换,说明在上一趟时数组就已经排好序了,此时就不要再往下继续进行了,退出


方法实现

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值