public class BubblingSort {
public static void main(String[] args) {
// 实例对象
BubblingSort sort = new BubblingSort();
// 创建数组
int [] arr = {1, 3, 4, 1, 10, 1};
// 调用排序
sort.sort(arr);
}
// 遍历数组
private void listArr(int [] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
// 对数组排序,每次将最大的交换移动到数组最后
private void sort(int [] arr){
// 定义临时变量便于后面交换
int temp = 0;
// 定义标签当数组处于有序时进行结束排序
boolean flag = false;
// 外循环
for (int i = 0; i < arr.length; i++) {
// 内循环
for (int j = 0; j < arr.length - 1 - i; j++) {
// 判断后一个数是否小于前一个数, 是就交换
if (arr[j] > arr[j + 1]){
flag = true; // 用于数组处于有序时进行结束排序
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 数组处于有序时进行结束排序
if (!flag){
break;
}else {
flag = false; // 恢复初始值
}
}
// 遍历排序后数组
listArr(arr);
}
}