Java知网

  • 首页
  • Spring Boot
  • 面试精选
  • 程序人生
  • 资源
  • 友链
  • 关于我
  1. 首页
  2. Java
  3. 正文

三分钟彻底理解冒泡排序

2021年5月2日 329点热度 0人点赞 0条评论

对于刚接触编程和算法的朋友来说看起排序算法可能不太清晰,接下来一起分析下冒牌排序。

假如我们得到一堆数 10 1 35 61 89 36 55 ,

这些数字都放在桌子上,我们需要对其进行从小到大排序 大的在右边小的在左边;

从这些数中可以先拿大的或者先拿小的,我们就以先拿大的为例

我们拿了7次对其进行了从大到小的排序, 这是我们直观的知道了数字的大小 依次对比拿出大的放在右边。当我们不能一眼分析这些书的大小时怎么办呢?

那么接下来我们要对其进行挨个对比大小了,前提 ,是这些数字不能是无序的放在那里,他需要像一个队列一样以此挨着了

像这样一样

我们需要 拿第一个和第二个对比 如果第一个比第二个大那么就换位置,如果小就不换,接下来拿第二个和第三个.....这样依次下去比到最后 我们把这些数中最大的一个放在了右边, 然后再重复以上的方式下去就这些数只第二个大的放在了倒数第二位,依次下去....

  1. 比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

  3. 针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

  4. 持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

接下来实例

我们为什么第二次循环 条件是 j < arr.Length - 1 - i 我们在上一次循环的时候已经对于 arr.Length - 1 - i之前的位数进行排序过 不用再进行无用的循环。

当然如果是需要小的在右边,同样的原理 对比时判断小的放在最右边 依然可以。

作者:Cool-浩
来源:https://blog.csdn.net/qq_39741605/article/details/80821595

相关文章:

  1. 三分钟彻底理解堆排序
  2. 三分钟彻底理解快速排序
标签: 排序算法
最后更新:2021年9月4日

javatip

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
搜一搜
扫一扫
    关注公众号
  • 技术干货推送
  • 免费资料领取
  • 定时福利发放
分类
  • Java / 110篇
  • Mysql / 17篇
  • Redis / 10篇
  • Spring Boot / 29篇
  • Spring Cloud / 16篇
  • 消息队列 / 14篇
  • 程序人生 / 21篇
  • 资源 / 4篇
  • 面试 / 23篇
归档
  • 2022年7月 / 1篇
  • 2022年4月 / 1篇
  • 2022年1月 / 1篇
  • 2021年12月 / 9篇
  • 2021年11月 / 2篇
  • 2021年9月 / 10篇
  • 2021年8月 / 4篇
  • 2021年7月 / 2篇
  • 2021年6月 / 10篇
  • 2021年5月 / 18篇
  • 2021年4月 / 75篇
  • 2021年3月 / 78篇

COPYRIGHT © 2021 javatip.cn. ALL RIGHTS RESERVED.

陇ICP备19004310号-2

甘公网安备 62010202003150号