public static void bubbleSort(int[] arr) {
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]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
public static void main(String[] args) {
int[] arr = {1,4,2,6,8,3,5,0};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
当数据在在冒泡排序某一趟发现已经有序就不需要在进行交换,就能进行优化
引入boolean 类型
代码实现
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {//确定趟数
boolean flat = false;
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
flat = true;
}
}
if(flat == false) {//如果没有交换
break;
}
}
}
public static void main8(String[] args) {
int[] arr = {1,4,2,6,8,3,5,0};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
结果显示