java数据结构,冒泡排序,并使用标志位进行优化冒泡排序。
原理:当走一轮发现没有任何元素变动时,就直接跳出。
代码如下:
// 优化冒泡排序
public static void sort(int [] arr) {
int temp = 0;
boolean flag = false;
for (int i = 0; i < arr.length-1; 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;
}
}
}