简单的冒泡排序及其优化(java实现)

引言
冒泡排序算是比较简单的常见算法,该算法的思路如下
思路
1.将一组数组排序(默认升序),使用两层循环来遍历数组。
2.第一层循环控制比较趟数,第二层循环控制两两比较的次数。
3.两两比较的时候,如果前一个数值比后一个数值大,则两数交换。
4.一趟比较下来,最大的数值便会沉到数组的底部。
代码
简单的冒泡排序及其优化(java实现)
再写一个测试类
简单的冒泡排序及其优化(java实现)
运行结果
简单的冒泡排序及其优化(java实现)
如果看的不太清楚可以看这图解哦
简单的冒泡排序及其优化(java实现)
一趟比较下来,最大的数值会沉在数组底部
简单的冒泡排序及其优化(java实现)
总趟数循环完后,排序就排好了

冒泡排序优化

对于这样一个数组,int[] a={1,2,3,4,5,7,6},它只用交换一次数值就可以排好序,在后面的两两比较中,没有一次数值交换,这样就会浪费时间,所有在这个时候就应该提前终止循环,结束排序。
思路
设置一个标志位,当没有一次两两交换发生时,即意味着排序已结束,这时终止循环。
代码
简单的冒泡排序及其优化(java实现)