代码如下:
public static void bubbleSort(int[] a, int n){
if (n < 1) {
return;
}
for ( int i = 0; i < n; i++ ) {
boolean flag = false;
for ( int j = 0; j < n - i - 1; j++ ) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = true;
}
}
if (!flag) {
break;
}
}
}
冒泡排序是一种原地、稳定排序算法。
最好情况下,要排序的数据已经是有序的了,我们只需要进行一次冒泡操作,就可以结束了,所以最好情况时间复杂度是 O(n)。而最坏的情况是,要排序的数据刚好是倒序排列的,我们需要进行 n 次冒泡操作,所以最坏情况时间复杂度为 O(n^2)。平均时间负责度是O(n^2)。