JAVA----关于冒泡排序的浅识


冒泡排序:1.比较相邻的两个元素,如果第一个比第二个大,那就交换他们

                  2.每一次比较,都会产生出一个最大或最小的数字

                  3.下一轮则可以少一次排序

                  4.依次循环,直到结束

代码实现+注释

package study;

import javax.swing.*;
import java.util.Arrays;

public class ArrayDemo04 {
public static void main(String[] args) {
int[] a={1,231,41,1234,1213,41};
System.out.println(Arrays.toString(a));
int[] sort = sort(a);//调用sort函数
System.out.println(Arrays.toString(sort));//Arrays.toString()是Arrays里的输出数组方法
}
public static int[] sort(int[] arrays)
{
int temp=0;
//外层循环,判断他要执行多少次
for (int i = 0; i < arrays.length-1; i++) {//长度减一是为了防止值的溢出,length的最大值=下标的最大值+1
boolean flag=false;//优化步骤1:设立布尔值
//内层循环,如果第一个数字比第二个大,那么交换他们的位置
for (int j = 0; j < arrays.length-1; j++) {
if(arrays[j+1]/内层循环执行条件:第一个数比第二个大
{
temp=arrays[j];//将前一个数或者后一个数字存放在临时变量里,那么该数就可以进行赋值变更
arrays[j]=arrays[j+1];//赋值变更
arrays[j+1]=temp;//将临时变量的值赋给未进行变更的值
flag=true;//插一次旗子,表示执行了一次内层循环,
}
}
if(flag==false)//判断是否执行内层循环,如果否,那么说明该次外层循环判断的这两个相邻数大小合适,那么跳出剩余的内层循环,进行下一次外层循环(判断另一组相邻数的大小)
{
break;
}
}
return arrays;
}
}
运行结果

[1, 231, 41, 1234, 1213, 41]
[1, 41, 41, 231, 1213, 1234]

进程已结束,退出代码0