另一种优化是 建立flag
public class programSort {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 6 };
int flag = 0;
int n = 0;
for (int i = 0; i < arr.length - 1; i++) {
flag = 1;
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
flag = 0;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
n++;
}
if (flag == 1) {
break;
}
}
for (int s : arr) {
System.out.print(s + "\t");
}
System.out.println(n);
}
}
这里建立一个flag 意思是当一次循环下来没有发生交换后 直接执行if语句中的退出 减省了时间
这里的循环次数最少是5次 也就是一次循环