package com.xzc.arrays;
import java.util.Arrays;
public class BubbleSort {
//Java实现冒泡排序
public static void main(String[] args) {
int[] a = {5, 2, 4, 20, 10, 3, 8};
int temp;
for(int i = 0;i<a.length-1;++i){
for(int j = 0;j<a.length-1;++j){
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(a));//[2, 3, 4, 5, 8, 10, 20]
}
}
思考:若数组传进来时就是有序的上述代码实现仍然会遍历。
所以以下为冒泡排序的优化:
package com.xzc.arrays;
import java.util.Arrays;
public class BubbleSort {
//Java优化冒泡排序
public static void main(String[] args) {
int[] a = {5, 2, 4, 20, 10, 3, 8};
int temp;
int flag;
for(int i = 0;i<a.length-1;++i){
flag = 0;
for(int j = 0;j<a.length-1;++j){
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag++;
}
}
if(flag==0){
break;
}
}
System.out.println(Arrays.toString(a));//[2, 3, 4, 5, 8, 10, 20]
}
}