氣泡排序法:關鍵字較小的記錄好比氣泡逐趟上浮,關鍵字較大的記錄好比石塊下沉,每趟有一塊最大的石塊沉底。
演算法本質:(最大值是關鍵點,肯定放到最後了,如此迴圈)每次都從第一位向後滾動比較,使最大值沉底,最小值上升一次,最後一位向前推進(即最後一位剛確定的最大值不再參加比較,比較次數減1)
複雜度: 時間複雜度 O(n2) ,空間複雜度O(1)
JAVA原始碼(成功執行,需要Date類)
複製程式碼 程式碼如下:
public static void bubbleSort(Date[] days) {
int len = th;
Date temp;
for (int i = len - 1; i >= 1; i--) {
for (int j = 0; j < i; j++) {
if (days[j]are(days[j + 1]) > 0) {
temp = days[j + 1];
days[j + 1] = days[j];
days[j] = temp;
}
}
}
}
class Date {
int year, month, day;
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
public int compare(Date date) {
return year > ? 1 : year < ? -1
: month > h ? 1 : month < h ? -1
: day > ? 1 : day < ? -1 : 0;
}
public void print() {
tln(year + " " + month + " " + day);
}
}