public class BubbleSort {
/**
* 冒泡排序
* @param a 待排序的数组
*/
public static void bubbleSort1(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
/**
* 冒泡排序的优化:加入标记状态 flag,若在一次冒泡中,没有交换 则说明可以停止 减少运行时
* @param a 待排序的数组
*/
public static void bubbleSort2(int[] a) {
boolean flag = true;
for (int i = 0; i < a.length - 1 && flag; i++) {
flag = false;
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = true;
}
}
}
}
public static void main(String[] args) {
int[] a = {7,9,4,2,10,6,1,8,5,3,-1,0};
bubbleSort2(a);
for (int i : a)
System.out.print(i + ",");
}
}
网友评论