就是判断在一次比较中是不是有换位置。如果没换,结束
package a;
import java.util.Arrays;
public class Bobble {
public static void main(String[] args) {
// int [] arr= {1,2,3,4,5};
// int [] arr= {2,8,-5,20,-9};
int[] arr = new int[80000];
for (int i = 0; i < 80000; i++) {
arr[i] = (int)(Math.random()*80000000);
}
long sta = System.currentTimeMillis();
int temp =0;
boolean flag = false;
for (int i = 0; i < arr.length-1; i++) {//因为冒泡排序是找位置,一共五个,找到四个就OK了 所以循环次数-1
for (int j = 0; j < arr.length-1-i; j++) {//这个-1 是因为 j+1 ,-i 是因为第二次之后,找到的就不需要比较了。
if (arr[j] > arr[j + 1]) {
flag =true;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if (!flag) {
System.out.println("break");
break;
}
flag = false;
}
System.out.println(Arrays.toString(arr));
long end = System.currentTimeMillis();
System.out.println((end-sta)/1000);
}
}
测试了时间。