代碼如下:
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)。