代码:
import java.util.Arrays;
public class Array07 {
public static void main(String[] args) {
//冒泡排序
//1.比较数组中两个相邻的元素,如果第一个数比第二个数大,则交换他们的位置
//2.每一次比较,都会产生出一个最大,或者最小的数字;
//3.下一轮则可以少一次排序!
//4.依次循环,直到结束!
int[] a ={1,2,3,4,2,5,121,777,999};
int[] sort =sort(a);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array){
int temp=0;
//外层循环,判断我们要走多少轮次
for (int i = 0; i < array.length-1; i++) {
//通过flag标识位减少没有意义的比较(即本身顺序是升序或者降序)
boolean flag =false;
//内层循环,比价判断两个数,如果第一个数比第二个数大(升序,降序则是第一个数比第二个数小,交换位置),则交换位置
for (int j = 0; j < array.length-1-i; j++) {
if (array[j]>array[j+1]){
temp =array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
if (flag==false){
break;
}
}
return array;
}
}
结果: