package com.aosiding.user.test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;
/**
* 一轮优化
*/
public class Test {
public static void main(String[] args){
int[] a = new int[]{1,2,3,4,5,11,10,6,4,5,6};if(a == null || a.length <2){return;}
int temp =0;
int k = a.length - 1;for(int i =0; i < k; i++){
boolean flag =true;for(int j =0; j < k-i; j++){if(a[j]>a[j+1]){
temp = a[j];
a[j]= a[j+1];
a[j+1]= temp;
flag =false;}}if(flag){break;}}
System.out.println(Arrays.toString(a));}}
1+2+3合并优化
package com.aosiding.test;
import java.util.Arrays;
import java.util.Random;
public class Bubble3 {
public static void main(String[] args) {
int[] ints = Bubble3.randomArray(10);
Bubble3.bubble3(ints);
}
public static void bubble3(int[] arr) {
int len = arr.length;
int right = len -1;
int left = 0;
int lastPos = 0;
int prePos = 0;
boolean flag;
for(int i=0; i<len-1;i++){flag= true;for(intj=left;j<right;j++){if(arr[j]> arr[j+1]) {
swap(arr, j, j+1);
flag = false;
lastPos = j;
}
}
for(int j=right; j>left; j--) {
if(arr[j] < arr[j-1]) {
swap(arr, j, j-1);
flag = false;
prePos = j;
}
}
if(flag) {
break;
}
right = lastPos;
left = prePos;
}
System.out.println("bubble4---- "+ Arrays.toString(arr));
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
public static int[] randomArray(int length) {
int[] arr = new int[length];
Random random = new Random();
for(int i=0; i<length; i++) {
arr[i] = random.nextInt(100);
}
//自动生成随机数组,先进行一次原始数据打印
System.out.println(Arrays.toString(arr));
return arr;
}
}
package com.aosiding.user.test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 一轮优化 */public class Test { public static void main(String[] args) { int[] a = new int[]{1,2,3,4,5,11,10,6,4,5,6}; if