比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
public class MaopaoDemo {
public static void main(String[] args) {
int[] list1 = {8,7,9,6,4,5,3,1,2,88,10};
// int[] list1 = {1,2,3,4,5,6,7,8};
for (int j = 0; j < list1.length - 1; j++){
// 记录是否发生交换
Boolean flag = false;
for (int i = 0; i < list1.length - 1 - j; i++) {
// 交换
if (list1[i] > list1[i+1]){
int min = list1[i+1];
int max = list1[i];
list1[i] = min;
list1[i+1] = max;
flag = true;
}
}
// 如果没有发生交换,程序结束!
if(!flag){
System.out.println("冒泡结束,最终结果为:"+Arrays.toString(list1));
break;
}
System.out.println("第"+j+"次冒泡,结果为:"+Arrays.toString(list1));
}
}
}