冒泡排序算法,以整数数组为例进行排序。
/**
* 冒泡排序法
*/
public static void bubbleSort(int[] items) {
if (null == items || items.length < 2) {
return;
}
// i表示有多少个数值已经进行排序,
// -1 是剩下最后一个没有排序,则不用进行排序
for (int i = 0; i < items.length - 1; i++) {
// 提前退出冒泡循环的标志位
boolean flag = false;
// -i 是有多少个还没有进行排序,-1是由于里边进行+1运算
for (int j = 0; j < items.length - i - 1; j++) {
if (items[j] > items[j + 1]) {
int temp = items[j];
items[j] = items[j + 1];
items[j + 1] = temp;
// 表示有数据交换
flag = true;
}
}
// 没有数据交换,提前退出
if (!flag) break;
}
}