Bubble -Sortiermethode : Datensätze mit kleineren Schlüsselwörtern sind wie Blasen nacheinander, und Datensätze mit größeren Schlüsselwörtern sind wie Steine sinken, und einer der größten Steine sinkt in jeder Reise auf den Boden.
Die Essenz des Algorithmus: (Der Maximalwert ist der entscheidende Punkt, er muss bis zum Ende gesetzt werden, sodass die Schleife so ist) Jedes Mal wird der Vergleich von der ersten Position nach unten durchgeführt, der Mindestwert steigt einmal und das letzte Bit -Fortschritt (d. H. Die letzte Ziffer wurde gerade durch den Maximalwert bestimmt, der nicht mehr am Vergleich beteiligt ist, wird die Anzahl der Vergleiche um 1 reduziert.
Komplexität: Zeitkomplexität O (N2), Raumkomplexität O (1)
Java -Quellcode (erfolgreich ausgeführt, Datumsklasse ist erforderlich)
Die Codekopie lautet wie folgt:
public static void bubblesort (Datum [] Tage) {
int len = tays.length;
Datumstemperatur;
für (int i = len-1; i> = 1; i--) {
für (int j = 0; j <i; j ++) {
if (Tage [j] .Compare (Tage [j + 1])> 0) {
temp = Tage [j + 1];
Tage [j + 1] = Tage [j];
Tage [j] = temp;
}
}
}
}
Klassendatum {
int Jahr, Monat, Tag;
Datum (int y, int m, int d) {
Jahr = y;
Monat = m;
Tag = D;
}
public int compare (Datum Datum) {
Rückgabejahr> Datum
: Monat> Datum.month?
: Tag> Datum.Day?
}
public void print () {
System.out.println (Jahr + "" + Monat + "" + Tag);
}
}
Die Codekopie lautet wie folgt:
Paket Testsortalgorithmus;
öffentliche Klasse Bubblesort {
public static void main (String [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (Array);
für (int i = 0; i <array.length; i ++) {
System.out.println (Array [i]);
}
}
public static void bubblesort (int array []) {
int temp;
für (int i = array.length-1; i> 0; i--) {
für (int j = 0; j <i; j ++) {
if (Array [j]> Array [j + 1]) {
temp = array [j];
Array [j] = Array [j + 1];
Array [j + 1] = temp;
}
}
}
}
}