Metode Penyortiran Gelembung : Catatan dengan kata kunci yang lebih kecil seperti gelembung yang mengambang satu demi satu, dan catatan dengan kata kunci yang lebih besar seperti batu yang tenggelam, dan salah satu batu terbesar tenggelam ke bagian bawah di setiap perjalanan.
Inti dari algoritma: (nilai maksimum adalah titik kunci, harus dimasukkan ke ujung, sehingga loop seperti ini) setiap kali, perbandingan dibuat dari posisi pertama ke bawah, nilai minimum naik sekali , dan kemajuan bit terakhir (mis. Digit terakhir baru saja ditentukan oleh nilai maksimum tidak lagi berpartisipasi dalam perbandingan, jumlah perbandingan dikurangi dengan 1)
Kompleksitas: Kompleksitas Waktu O (N2), Kompleksitas Ruang O (1)
Kode Sumber Java (berhasil dijalankan, kelas tanggal diperlukan)
Salinan kode adalah sebagai berikut:
public static void bubblesort (date [] days) {
int len = days.length;
Temp Temp;
untuk (int i = len-1; i> = 1; i--) {
untuk (int j = 0; j <i; j ++) {
if (days [j] .compare (hari [j + 1])> 0) {
temp = hari [j + 1];
hari [j + 1] = hari [j];
hari [j] = temp;
}
}
}
}
Tanggal kelas {
tahun int, bulan, hari;
Tanggal (int y, int m, int d) {
tahun = y;
bulan = m;
hari = D;
}
Public int Compare (tanggal tanggal) {
Kembali Tahun> Tanggal
: Bulan> Date.month?
: Day> Date.day?
}
public void print () {
System.out.println (tahun + "" + bulan + "" + hari);
}
}
Salinan kode adalah sebagai berikut:
testsortalgorithma paket;
Bubblesort kelas publik {
public static void main (string [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (array);
untuk (int i = 0; i <array.length; i ++) {
System.out.println (array [i]);
}
}
public static void bubblesort (int array []) {
int temp;
untuk (int i = array.length-1; i> 0; i--) {
untuk (int j = 0; j <i; j ++) {
if (array [j]> array [j + 1]) {
temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
}
}