用两层for循环可以实现冒泡排序:
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {2,6,1,0,9};
//冒泡循环 升序排列
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1; j++) {
if(arr[j] > arr[j + 1]) {
loop = true;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
对冒泡排序进行优化:
如果在某一次循环中,一次交换都没有进行过,那么说明此时此数组目前已经是有序数组,那么不必进行后面的排序。
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {2,6,1,0,9};
//冒泡循环 升序排列
int temp;
boolean loop = false;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1; j++) {
if(arr[j] > arr[j + 1]) {
loop = true;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
if(!loop) {
break;
} else {
loop = false;
}
}
System.out.println(Arrays.toString(arr));
}
}