InertionSort verstehen

Hallo liebes Forum, ich tue mich schwer folgenden InertionSort Code nachzuvollziehen

Java:
public static int[] intertionSort(int[] toSort){

int curr = 0;
for(curr = 0; curr < toSort.length; curr++) {
int temp = toSort[curr];
int i;
print(curr, toSort);
for(i = curr; i > 0 && toSort[i-1] < temp; i--){
toSort[i] = toSort[i-1];
}
toSort[i]=temp;
}
print(curr,toSort);
return toSort;
}

Die Aufgabe besteht darin aus dem Code die curr und die toSort auszulesen, was wäre:


Curr toSort

0 #### 2,3,8,6,7,4
1 #### 2,3,8,6,7,4
2 #### 3,2,8,6,7,4
3 #### 8,3,2,6,7,4
4 #### 8,6,3,2,7,4
5 #### 8,7,6,3,2,4
6 #### 8,7,6,4,3,2


Mein Problem ist nun, wie ich das richtig herauslesen kann.

Wäre sehr nett wenn mir das jemand mit Curr 0 und 1 mal erklären könnte
 

T7V

Aktives Mitglied
Du musst beachten, dass das Feld immer vor der Bearbeitung ausgegeben wird.

außerdem passiert bei curr 0 erstmal nichts, da
Java:
i = curr; i > 0
(aus 2 Schleife)
diese bedingung nicht erfüllt ist.
Daher wird bei curr 1 das gleiche Feld ausgegeben.
 
Java:
public static int[] intertionSort(int[] toSort){
 
int curr = 0;                                    
/*  curr ist 0
*/
for(curr = 0; curr < toSort.length; curr++) {      
/* for bedingung gilt, im nächsten schritt wird curr 1
*/
int temp = toSort[curr];                                
/*(das versteh ich nicht so ganz) temp wird 0? da
                                                                
/*   da curr = 0 ist?
*/
int i;                                                           
/*  int i müsste hier 0 werden
*/
print(curr, toSort);                                         
/*  hier wird nun curr = 0 ausgegeben und toSort
  2,3,8,6,7,4
*/
for(i = curr; i > 0 && toSort[i-1] < temp; i--){    
 /*  die for bedingung gilt nicht
*/
toSort[i] = toSort[i-1];
}
toSort[i]=temp;
}
print(curr,toSort);                                         
 /*  (das versteh ich auch nicht so ganz, auf welches       
   Feld hat das eine wirkung?)
*/
return toSort;                                              
 /*  (versteh ich auch nicht):S
*/
}
 
Zuletzt bearbeitet:

T7V

Aktives Mitglied
Java:
int temp = toSort[curr];                                
/*(das versteh ich nicht so ganz) temp wird 0? da
                                                                
/*   da curr = 0 ist?
*/
Du willst doch mit InsertionSort dein Feld sortieren.
Später(bei höherem curr) lässt du alle Feldelemente aufrutschen.
Danach wird dann der Wert von toSort[curr] an eine andere Stelle übertragen, da die Elemente aber aufgerutscht sind, hat toSort[curr]jetzt einen anderen Wert.
daher musst du den Wert von toSort[curr]irgendwo zwischenspeichern. Dies geschieht hier mit Hilfe von temp.

Java:
print(curr,toSort);                                         
 /*  (das versteh ich auch nicht so ganz, auf welches       
   Feld hat das eine wirkung?)
*/
Das gibt am Ende, wenn beide Schleifen durchlaufen wurden, dein sortiertes Feld noch einmal wieder.

Java:
return toSort;                                              
 /*  (versteh ich auch nicht):S
*/
Das sortierte Feld wird zurückgegeben. An die Stelle von wo du diese Methode (public static int[] intertionSort(int[] toSort)) aufgerufen hast.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
jamboy7 Java-API kennenlernen, verstehen und nutzen lernen Java Basics - Anfänger-Themen 4
B Methodendeklaration verstehen Java Basics - Anfänger-Themen 2
J Methode verstehen Java Basics - Anfänger-Themen 3
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
B Interpreter-Fehler Code verstehen und Compilerfehler Java Basics - Anfänger-Themen 2
O Programm verstehen :D Java Basics - Anfänger-Themen 4
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
B Rekursion verstehen Java Basics - Anfänger-Themen 4
D Erste Schritte Code verstehen - HashSet Java Basics - Anfänger-Themen 8
E Rekursion verstehen. Java Basics - Anfänger-Themen 4
E Rekursion verstehen Java Basics - Anfänger-Themen 2
L Quicksort verstehen Java Basics - Anfänger-Themen 3
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
S Programmcode verstehen Java Basics - Anfänger-Themen 4
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
TomatenBrot447 Abhängigkeitsgraph verstehen? Java Basics - Anfänger-Themen 14
O Java und JSF besser verstehen Java Basics - Anfänger-Themen 1
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
L Polymorphie Polymorphie verstehen? Java Basics - Anfänger-Themen 2
U Code anderer Programmierern verstehen Java Basics - Anfänger-Themen 2
G Quellcode verstehen Java Basics - Anfänger-Themen 9
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
N Initialisierer / statischer Initialisierer verstehen Java Basics - Anfänger-Themen 6
S Wie ist folgender Kommentar in meinem Ant file zu verstehen..? Java Basics - Anfänger-Themen 0
D Quellcode verstehen Java Basics - Anfänger-Themen 4
V Parameterübergabe von Methoden verstehen Java Basics - Anfänger-Themen 13
C Schleifen verstehen Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
T For schleife verstehen Java Basics - Anfänger-Themen 26
K Passage im Quelltext verstehen Java Basics - Anfänger-Themen 2
S Programmfragmente verstehen? Java Basics - Anfänger-Themen 4
S OOP Java Kommentare, Programm besser verstehen Java Basics - Anfänger-Themen 6
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
P hilfe...nix verstehen....... Java Basics - Anfänger-Themen 2
K OPP am besten verstehen !!! Java Basics - Anfänger-Themen 7
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
M Was kann man unter implementieren so verstehen? Java Basics - Anfänger-Themen 11
S Problem beim Verstehen des Quellcodes Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
Z Problem Fehlermeldung zu verstehen Java Basics - Anfänger-Themen 7
A wie lernt man am besten den code zu verstehen? Java Basics - Anfänger-Themen 7
G Möchte Java verstehen Java Basics - Anfänger-Themen 11
K Verzeichniss Struktur verstehen Java Basics - Anfänger-Themen 3
M Java verstehen ! Java Basics - Anfänger-Themen 5
K generics richtig verstehen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben