Beim Erlernen der Grundlagen von Java bin ich auf ein Problem mit Algorithmen gestoßen, daher habe ich es zum Nachdenken geschrieben.
In aufsteigender Reihenfolge sortieren (zB 2,5,3,4,1 → 1,2,3,4,5) Übrigens absteigende Reihenfolge (5,4,3,2,1)
Die Bilder werden einzeln mit einer for-Anweisung von links verglichen und sortiert. (Vergleichsbeispiel: 2 und 5, 2 und 3, 2 und 4, 2 und 1 ...)
Es gibt verschiedene Möglichkeiten, es zu schreiben, aber das folgende Codebeispiel
1 int[] date = {2,5,3,4,1};
2 for (int i = 0; i < date.length - 1; i++) {
3 for (int j = i + 1; j < date.length ; j++) {
4 if (date[i] > date[j]) {
5 int a = date[i];
6 date[i] = date[j];
7 date[j] = a;
8 }
9 }
10}
11for (int i = 0; i < date.length; i++) {
12 System.out.print(date[i] + " ");
13}
Geben Sie in der for-Anweisung in der zweiten Zeile den bedingten Ausdruck an, um das erste zu vergleichende Element zu erhalten.
Anfangswert i= 0;Bedingter Ausdruck(i < date.length - 1);Nächster Schritt i++
Ermitteln Sie die Anzahl der Werte, die ein Element mit `` `date.length -1``` vergleicht. Es spielt keine Rolle, ob die Anzahl der Sorten zunimmt.
Die Anzahl der zu vergleichenden Werte beträgt beispielsweise: 2,5,3,4,Von 1
2 und 5,2 und 3,2 und 4,2 und 1 4 mal
Um das zweite zu vergleichende Element in der for-Anweisung in der dritten Zeile zu erhalten, beschreiben Sie den bedingten Ausdruck in Form des Anfangswertes "j = i + i".
Ursprünglicher Wert(j = i +i);Bedingter Ausdruck(j < date.length);Nächster Schritt j++
Die if-Anweisungen in der 4. bis 8. Zeile vergleichen die Werte, die die Bedingungen erfüllen, und sortieren sie.
if (date[i] > date[j]) {
int a = date[i];
date[i] = date[j];
date[j] = a;
}
Anzeige des Datums nach dem Sortieren
for (int i = 0; i < date.length; i++) {
System.out.print(date[i] + " ");
}
Konsolenanzeige
1 2 3 4 5
[Java] Sortieren mit Arrays (Bubble Sort)
Recommended Posts