Java-排序算法之冒泡排序算法

来源:互联网 发布:软件开发职业规划 编辑:程序博客网 时间:2024/05/21 21:38

冒泡排序算法的思路就是交换排序,通过相邻数据的交换来达到排序的目的。
排序流程如下:
1、对数组中的各数据,依次比较相邻的两个元素的大小。
2、如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,便可将最小的数据排好。
3、再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据。
代码实现如下:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这种排序方法思路简单直观,缺点是执行的步骤稍长(从执行结果中可明显看出)。冒泡排序的效率比较低,下面给出改进方法。
1、改进1:加入一标志性变量exchange,用于标志某一轮排序过程中是否有数据交换,如果某一轮排序没有进行数据交换,则说明数据已经按要求排列好了,可立即结束排序,这样可避免不必要的比较过程。
代码实现:
这里写图片描述
这里写图片描述
2、改进2:改变循环的次数,第一次循环把最大的数据排到最后,第二次循环只对除最大数字之外的数据进行比较,这样就减少了一次比较的次数。就这样循环比较,每一次比较都会减少一次比较次数。
代码实现:
这里写图片描述
这里写图片描述
这里写图片描述
3、改进3:从后往前找最大的,从前往后找最小的;并加入标志性变量exchange(与改进1类似),这样一轮排序就可对整个数据进行全部排序。
代码实现:
这里写图片描述
这里写图片描述
这里写图片描述
敬请,各位路过的大牛们指点指正。

原创粉丝点击