废话不多说 直接上代码 看不懂的话可以看注释
在这里插入代码片
public static void bubbleSort(int[] arr) {
//标志位 标志是否进行交换
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j <arr.length; j++) {
//进行一下判断 如果前面的数比后面的数大 那么就应该交换一下
//轮一圈后能保证最后面的那个数是这个数组中最大的
if (arr[i] > arr[j]) {
flag = true;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//在里面的这层循环结束之后 判断一下flag的值
//如果值为false 那么就说明没有被修改 直接跳出就可以了
//如果值为true 那么就说明值被修改了 重新将flag赋值为false 方便下次的修改
if (!flag) {
break;
} else {
flag = false;
}
}
}