经典:
private static int[] bubbleSort(int[] ints) {
int len = ints.length;
for (int i = 0; i < len; i++) {
for (int j = 1; j < len - i; j++) {
if (ints[j - 1] > ints[j]) {
int temp = ints[j];
ints[j] = ints[j-1];
ints[j-1] = temp;
}
}
}
return ints;
}
优化:(获取最新交换数字的边界,下次循环时,边界后的数据不用进行排序比较)
private static int[] bubbleSort(int[] ints) {
int len = ints.length;
int flag = len;
while (flag>0) {//如果flag>0则排序结束
flag = 0;
for (int i = 1; i < len; i++) {
if (ints[i - 1] > ints[i]) { //前面大于后面则交换数据
int temp = ints[i];
ints[i] = ints[i-1];
ints[i-1] = temp;
flag = i; //设置最新边界
}
}
len = flag;//记录遍历的边界
}
return ints;
}