常规写法:
int[] arr = {2,3,1,8,6};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length -1; j++) {// -1代表,防止越界
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
System.out.println(j+"次数");
}
System.out.println(Arrays.toString(arr));
}
优化写法 :
int[] arr = {2,3,1,8,6};
int length = arr.length;
boolean flag; // 优化排序,根据条件减少外层循环次数
for (int i = 0; i < length; i++) {
flag = false;
for (int j = 0; j < length -1 - i; j++) {// -1代表,防止越界, -i代表,减少内层循环次数
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
System.out.println(j+"次数");
}
System.out.println(Arrays.toString(arr));
if(!flag){
return;
}
}