摘要:今天我们来讲讲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。
以上总结完后,大家是否能写出冒泡排序了呢?最后我来附上代码:
随时欢迎您加微信号(Iotek666),进行交流,本微信号会不定期推送技术相关优质文章、热点资讯、视频资源及生活趣事,更乐意与您一起交流IT知识,让我们在闲暇之余巩固一下自己的知识体系 ,扩充一下自己的知识面。快利用琐碎时间给自己充电吧!
希望这篇文章可以帮助到你,总之同学们,IT资讯尽在职坐标。
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号