Java Problemstellung

minimaster123

Enthusiast
Thread Starter
Mitglied seit
21.03.2005
Beiträge
1.056
Ort
Luzern
Hallöchen!

Ich hab (aus einer Klausur) folgende Codezeilen und hätte gern gewusst (zum Nachvollziehn), warum das rauskommt, was dann da rauskommt. :fresse:

int hilf;
int [] a = {6,8,2,9,0};

for (int i=0;i<a.length-1;i++)
for (int j = i + 1; j < a.length; j++)
if(a > a[j]) {
hilf = a;
a = a[j];
a[j] = hilf;
}

for (int i = 0; i < a.length; i++)
System.out.print (a + " ");
System.out.println();


Als Ergebnis kommt folgendes raus:
0 2 6 8 9


Für Eure Bemühungen schon mal danke. :)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
int hilf;
int [] a = {6,8,2,9,0};
variablen bzw. Array deklaration/initialisierung (hoffentlich klar)
for (int i=0;i<a.length-1;i++)
einfach array durchlaufen bis auf die letzte stelle (sonst gibt es in der 2. Schleife eine ArrayIndexOutOfBoundsException (Index den es net gibt))
for (int j = i + 1; j < a.length; j++)
gleiches wie oben nur diesmal halt ganz durchlaufen

wenn die stelle bei dem Index von i größer ist als der in dex bei j dann...
hilf = a;
a = a[j];
a[j] = hilf;
}

wird getauscht
for (int i = 0; i < a.length; i++)
System.out.print (a + " ");
System.out.println();

Array ausgeben (hoffentlich auch klar)

so dass ist jetzt ein einfacher (und langsamer) sortieralgorithmus.

hoffe ist dir einigermaßen verständlich geworden.
wenn nicht einfach fragen (Der Fachinformatiker im Urlaub hilft dir gerne :d)
 
Ha naja, ist halt ein Sortieralgorithmus.

Die äußere For-Schleife geht quasi das Array "einmal durch". Die innere Schleife geht das Array ab dem Element auf dem die äußere Schleife zeigt einmal komplett durch. Dann wird der Wert der äußeren mit der inneren Schleife verglichen. Ist der Wert der innerne Schleife (sprich die Zahl die weiter rechts steht) kleiner, dann werden die Zahlen vertauscht.

Anders gesagt wird in jedem Durchlauf die kleinste Zahl vom "Restarray" (innere Schleife) nach links gebracht.

Zeichne es dir auf, dann wird es klar. Ich habe mal den Anfang gemacht:

info-1.jpg


*e* Hm, gizzle war zu langsam. :d
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh