【摘要】 package cn.tedu.array;
import java.util.Arrays;
/**
* 本类用来完成冒泡排序
*@author Administrator
*version 创建时间:2021年5月8日 下午4:29:07
*/
public class BubbleSort {
//创建程序的入口函数main()
public stati…
package cn.tedu.array;
import java.util.Arrays;
/**
* 本类用来完成冒泡排序
*@author Administrator
*version 创建时间:2021年5月8日 下午4:29:07
*/
public class BubbleSort {
//创建程序的入口函数main()
public static void main(String[] args) {
//1、创建无需的数组arr
int[] arr= {27,96,73,25,21};
//2、调用自定义排序方法完成排序
int[] newA=method(arr);
System.out.println("排序完毕:"+Arrays.toString(newA));
}
public static int[] method(int[] arr) {
//数组是引用类型
//1、外层循环,控制的是比较的轮数,假如有n个数,最多比较n-1轮
//开始:1
//结束:arr.length-1
//变化:++
boolean flag=false; //定义flag进行性能优化
for(int i=1;i<=arr.length-1;i++) { //参数和返回值都是int类型的数组 System.out.println("第"+i+"轮"); //2、内层循环:相邻比较,位置不对互换位置 //开始:0 //结束:arr.length-1 //变化:++ for(int j=0;j<arr.length-i;j++) { //控制比较次数 //相邻比较,a[j]代表的是前一个元素,a[j+1]代表的是后一个元素 if(arr[j]>arr[j+1]) { //交换数据 int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; flag=true; //如果有数据交换,将flag的值改变 //如果交换数据,就打印,没有数据交换的就不打印 System.out.println("第"+(j+1)+"次比较交换后:"+Arrays.toString(arr)); } } if(flag==false) { return arr; //如果没有进行数据交换,即后续不会再进行交换,数据已经排好,直接返回数组 } System.out.println("第"+i+"轮的结果:"+Arrays.toString(arr));
}
return arr;
}
}
文章来源: blog.csdn.net,作者:qq_43802023,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_43802023/article/details/116535684
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END