数组冒泡算法的一些思路,记录一下

给定一个数组进行排序,比如【8,3,4,6,1,2,5,7】这样一个数组,如何代码实现排序号,用冒泡法写一个sort方法。

思路:从第一个开始,每一个跟后面一个比较大小。比如第一次8跟3,4,6,1,2,5,7比较,第一次结束后的数组为【3,4,6,1,2,5,7,8】,第二次循环,3跟4,4跟6,6跟1,6大1,所以6跟1交换,继续,6跟2比,6跟2交换,继续,6跟5比,6跟5交换,,6跟7比较,现在数组变成了【3,4,1,2,5,6,7,8】第二次循环后,确定了数组最大的两个数7,8,所以说每循环一次就把第n-1的大小确定了。那么第三次循环就是,3跟4,4跟1,4跟2,4跟5,5跟6,得到的数组就是【3,1,2,4,5,6,7,8】依次类推,第四次 3跟1,3跟2,3跟4,4跟5,得到数组就是 【1,2,3,4,5,6,7,8】 ,现在看起来好像是已经排序好了,但实际上还是会进行第五次循环,1跟2,2跟3,3跟4,得到就是【1,2,3,4,5,6,7,8】第六次依旧1跟2,2跟3得到就是【1,2,3,4,5,6,7,8】第七次是1跟2,【1,2,3,4,5,6,7,8】

因为里层是两两比较交换,所以需要要两层for循环,第一层i是循环次数,第二层j是每次减少n-1个,因为每循环一次可以确定一个最大的数放在最后面。

有了上面的思路,我们就可以正确编写代码了,当然要实现传值倒序的话,再来一个参数reverse

=======================我是有底线的=================================

从上面的例子其实要可以到5次的时候就已经排序好了,后面的循环实际上就是在浪费时间跟系统资源,还是来做一下优化吧,那么我们就给加一个标识符,当不需要再排序的时候,我们跳出程序

(没有标识符的执行次数)

确实是只执行了5次。

(加了标识符的执行次数)

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值