冒泡排序算法
1、比较数组中相邻两个元素的大小,如果前者比后者大,就交换它们的位置
2、每一次比较,都会产出一个最大或者最小的数字
3、下一轮则可以少一次排序
4、依次循环,直到结束
public class ArrayDemo05 {
public static void main(String[] args) {
int[] a={5,8,4,2,6,3,1};
int[] b=sort(a);
System.out.println(Arrays.toString(b));
}
//冒泡排序
public static int[] sort(int[] arrays){
//外层循环,判断要比较多少次
int temp=0;//定义一个临时变量,用于交换
for (int i = 0; i < arrays.length-1; i++) {
boolean flag=false;//通过flag标记减少没有意义的比较
//内层循环,比较两个数,如果第一个数比第二个数大,则交换位置
//选出一个最大的数放到数组最后面
//i+1之后,再循环就不用去和最大的数比较了
for(int j=0;j< arrays.length-1-i;j++){
if(arrays[j]>arrays[j+1]){
temp=arrays[j];
arrays[j]=arrays[j+1];
arrays[j+1]=temp;
flag=true;
}
}
if(flag==false){
break;
}
}
return arrays;
}
}
[1, 2, 3, 4, 5, 6, 8]