介绍:
冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
步骤:
-
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
-
对第0个到第n-1个数据做同样的工作。这时,最大的数就“浮”到了数组最后的位置上。
-
针对所有的元素重复以上的步骤,除了最后一个。
-
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
public void betterBubbleSort(int[] nums,int len){
boolean flag;
flag = true;
for(int i=0;i<len-1 && flag;i++){ //一趟比较 如果上趟比较一次也没有交换,则说明后面都排好序了,不用再比较了
flag = false;
for(int j=0;j<len-1-i;j++){ //一次比较,每次把最大值放在最后面,所以下一次比较的时候不用对后i个数比较了
int temp = nums[j];
if(nums[j] > nums[j+1]){
nums[j] = nums[j+1];
nums[j+1] = temp;
flag = true;
}
}
}
System.out.println("优化后的冒泡排序:");
for (int i : nums) {
System.out.print(i+" ");
}
}