排序算法之冒泡排序

//所谓冒泡排序,其原理就是依次将第一个数与后一个数比较,数字大的就后移,第一次排序后,最后一个数字就是最大的树,然后再依次将第二个数与后一个数比较,数字大的后裔,第二次排序后,倒数第二个数字就是第二大的数了,后面逻辑一样。

package cn.ycl.dataStructures.sort;
import java.util.Arrays;
//冒泡排序
public class BubbleSort {
public static void main(String[] args) {
int array[] = { 3, 9, -1, 10, 20 };
int temp = 0;// 中间变量
Boolean flag = false;
// 简单的冒泡排序
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
flag = true;
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
System.out.println(Arrays.toString(array));
if (!flag) {// 在一次排序中,一次交换都没有发生过
break;
} else {
flag = false;// 重置flag,进行下次判断
}
}
}
}