Java语言算法-冒泡排序
范佺菁 2018-05-09 来源 : 阅读 1612 评论 0

摘要:今天我们来讲讲Java语言的算法,之前我们讲过了数组,那一般在显示数据的时候,我们一般会对数据进行排序,所以今天我们来讲讲数据排序算法中的冒泡排序。希望对大家学习Java语言有所帮助。

今天我们来讲讲Java语言的算法,之前我们讲过了数组,那一般在显示数据的时候,我们一般会对数据进行排序,所以今天我们来讲讲数据排序算法中的冒泡排序。希望对大家学习Java语言有所帮助。

冒泡排序,我们会很形象的在脑海中想到,在水里一个起泡不断的往上冒,其实冒泡排序原理也是如此,把一个最值(最值就是最大值或最小值)不断的往后排,保证最后一个是最大值或最小值即可,当然,最后一个是最小值还是最大值,主要看你需要是升序还是降序了。

冒泡排序的原理主要是,相邻两个数做比较,如果是升序排序,那最大的那个数往后排,保证最后一个值是最大值,如果是降序排序,那最小的那个数往后排,保证最后一个值是最小值。

我们来举个例子:这里有一列数字,6,4,1,8,4,我们来用冒泡排序升序排序。

第一轮:

6和4比较,6比4大,6和4换位:4 ,6,1,8,5

6和1比较,6比1大,6和1换位:4,1,6,8,5

6和8比较,6比8小,位置不换:4,1,6,8,5

8和5比较,8比5大,8和5换位:4,1,6,5,8

在第一轮比较中我们的最大值已经出现,那我们考虑下那第二轮比较是否要把倒数第二位和这个8再进行比较呢?我想不需要了吧,因为8已经是最大值,再做比较就没有意义了,浪费时间了,所以第二轮的比较次数会比第一轮少一次,我们来看看。

第二轮:

4和6比较,4比6小,位置不换:4,1,6,5,8

1和6比较,1比6小,位置不换:4,1,6,5,8

6和5比较,6比5大,6和4换位:4,1,5,6,8

通过实践,的确比第一轮少了一次,那第三轮同理,因为老大比出来后,老二同时也浮出水面,所以倒数第三个数和倒数第二个数就不用再做比较了。

第三轮:

4和1比较,4比1大,4和1换位:1,4,5,6,8

4和5比较,4比5小,位置不换:1,4,5,6,8

第四轮同上,老三出现,所以比较次数也少一次

第四轮:

1和4比较,1比4小,位置不换:1,4,5,6,8

到此,我们已经看到排序已经结束,最终的顺序已经出现在我们眼前,通过观察,总的轮数正好是我们这列数字的个数-1,而比较的轮次是随着轮数的增长而减少的。

那我们把这列数字放入数组中,那轮数我们用for循环来做,那循环的总的次数就是数组的lenght-1,而每轮的比较次数则是lenght-1-轮数,而轮数正好是for循环中的i值,即lenght-1-i。

以上总结完后,大家是否能写出冒泡排序了呢?最后我来附上代码:

Java语言算法-冒泡排序

随时欢迎您加微信号(Iotek666),进行交流,本微信号会不定期推送技术相关优质文章、热点资讯、视频资源及生活趣事,更乐意与您一起交流IT知识,让我们在闲暇之余巩固一下自己的知识体系 ,扩充一下自己的知识面。快利用琐碎时间给自己充电吧!

希望这篇文章可以帮助到你,总之同学们,IT资讯尽在职坐标。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!

  • 27
    文章
  • 6532
    人气
  • 90%
    受欢迎度

已有48人表明态度,90%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
Java语言-深度理解Java变量
经验技巧 100% 的用户喜欢
论大数据和人工智能的区别
经验技巧 88% 的用户喜欢
WEB前端学习之仿百度—布局使用
经验技巧 100% 的用户喜欢
JAVA语言之Eclipse快捷键总汇
经验技巧 100% 的用户喜欢
HTML5+CSS3从入门到精通中你需要知道的!
经验技巧 100% 的用户喜欢
其他海同师资 更多>>
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
金延鑫
金延鑫 联系TA
擅长与学生或家长及时有效沟通
程光淼
程光淼 联系TA
精通C、C++等语言、智能芯片开发
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程