关于冒泡排序的优化
最近在学习的过程中,发现有好多小伙伴在学习冒泡排序的过程中,对优化问题很是苦恼,因为之前本人在尚学堂老裴那里得到真经,所以给大家分享出来,希望可以帮助大家解决问题。
代码如下:
public static void Start(double[] arr) {
for(int i=0;i<arr.length-1;i++) {
boolean alread = true;//假定有序
System.out.println("第"+ i+1 + "轮");
for(int j=0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
double temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
alread = false;//交换值了,说明之前是无序的
}
System.out.println(Arrays.toString(arr));//本轮排序后的数组
}
if(alread == true) {
break;
}
}
}
public static void main(String[] args) {
double[] d = {10,50,400.2,600,900};
Start(d);
System.out.println(Arrays.toString(d));
}
}