/**
* 冒泡排序
*
* 原理描述:比较相邻两个元素大小,进行交换,将大(小)的元素放到右边,以此类推,直到排序完毕。
*
* 平均时间复杂度 O(n^2) 空间复杂度 O(1) 稳定
*
* @param array 数组
* @return int[]
*/
public static int[] bubbleSort(int[] array) {
if (array.length < 1) {
return array;
}
for (int i = 0; i < array.length; i++) {
// 没有数据交换提前退出循环
boolean flag = false;
for (int j = 0; j < array.length - i -1; j++) {
if (array[j] > array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
flag = true;
}
}
if (!flag) {
break;
}
}
return array;
}
关注微信公众号:【皮卡战记】
