Verständnisproblem InsertionSort.

NeX

Mitglied
Hallo!

im Forum gibt es zwar einige Themen zum InsertionSort, aber leider habe ich keine Antwort auf mein (wahrscheinlich dummes) Problem gefunden. Und zwar geht es mir um den InsertionSort, den ich für die Uni verstehen muss.

InsertionSort(array of int A)
for j = 2 to A.length do
key = A[j ]
i = j - 1
while i > 0 and A[i ] > key do
A[i + 1] = A[i ]
i = i - 1
A[i + 1] = key


bis zu der while Schleife ist mir klar, was passiert, ich verstehe auch, wie InsertionSort grundsätzlich funktioniert. Die Bedingung für die while-Schleife ist auch noch verständlich, aber dann hört es auf. Ich dachte, dass sich alle Variablen in den eckigen Klammern auf die Werte, und nicht auf den Index beziehen (zum Beispiel key = A[j], für den key 3 in einem Array an der Stelle mit dem Index 2). Aber in der Whileschleife scheint ja mit dem +1 der Index gemeint zu sein.. was passiert da genau?

Gibt es tipps, wie man da den Unterschied leichter sehen kann?
Es wäre super wenn mir das jemand wirklich ganz, ganz simpel erklären könnte!

Liebe Grüße,
NeX
 

minzee

Bekanntes Mitglied
Ich bin mir ziemlich sicher, dass der Pseudocode anders ausschaut. Entweder gibt es noch geschwungende Klammern oder od´s. Auf jeden Fall fehlen die Einrückungen, um die Blöcke zu erkennen.

A steht für das Array, also für alle Wert.
int[] A = {10, 20, 30, 40};

A steht für das i´te Element im Array.
int i = 0;
System.out.println(A); // 10

A[i + 1] bedeutet, dass zuerst zu dem i 1 hinzuaddiert wird, und dann dieses Element genommen wird.
int i = 0;
System.out.println(A[i + 1]); // 20

i ist ein Index. A ist ein Element aus dem Array, das über den Index i adressiert wird.

A[i + 1] = A nimmt den Wert beim Index i und kopiert ihn um 1 Stelle nach rechts in das Element mit dem Index i + 1.
int i = 0;
A[i + 1] = A;
System.out.println(A); // 10
System.out.println(A[i + 1]); // 10

Auf diese Weise verschieben sich alle Werte links von i jeweils um 1 Position nach rechts, sofern deren Wert größer sind als der Wert beim Index j.

EDIT: noch einen Schreibfehler korrigiert
 
Zuletzt bearbeitet:

NeX

Mitglied
Hallo!

Vielen Dank für die ausführliche Erklärung, jetzt hab ich's verstanden! War wirklich nur ein total blöder Denkfehler, mit dem Index und dem Wert.

Der Code ist übrigens aus der Vorlesung so übernommen, die Einrückungen hat er mir beim posten anscheinend verschmissen!

Also vielen Dank nochmal, dann kann ich InsertionSort endlich abhaken :)

Liebe Grüße,
NeX
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
X Verständnisproblem Call-By-Reference Java Basics - Anfänger-Themen 5
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
T Verständnisproblem mit Assoziationen Java Basics - Anfänger-Themen 7
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
A Erste Schritte Verständnisproblem Java Basics - Anfänger-Themen 5
S Verständnisproblem Aufgabe Java Basics - Anfänger-Themen 9
S Model View Controller: Verständnisproblem Java Basics - Anfänger-Themen 13
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
V Verständnisproblem Java Basics - Anfänger-Themen 22
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
J Verständnisproblem einer Methode Java Basics - Anfänger-Themen 20
M Konstruktur - Verständnisproblem Java Basics - Anfänger-Themen 4
C Postinkrement und println - Verständnisproblem Java Basics - Anfänger-Themen 8
T Verständnisproblem beim Vigenere-Verfahren Java Basics - Anfänger-Themen 2
Q MVC Verständnisproblem: Controller vs model.modelChanged() Java Basics - Anfänger-Themen 0
D Verständnisproblem Java Basics - Anfänger-Themen 2
B VerständnisProblem mit Beispielaufgabe aus Buch Java Basics - Anfänger-Themen 1
H Polymorphie Verständnisproblem Vererbung/Polymorphie Java Basics - Anfänger-Themen 4
FrankR2 Grundsätzliches Verständnisproblem: Java 32/64-bit; Windows 7/8, 32/64-bit-System Java Basics - Anfänger-Themen 5
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
V Verständnisproblem Java Basics - Anfänger-Themen 5
V Arrays-verständnisproblem Java Basics - Anfänger-Themen 4
M Collections HashSet verständnisproblem Java Basics - Anfänger-Themen 9
S Verständnisproblem einer Übungsaufgabe Java Basics - Anfänger-Themen 6
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Verständnisproblem mit swing Java Basics - Anfänger-Themen 6
F Methoden Cannot refer to a non-final variable.. verständnisproblem. Java Basics - Anfänger-Themen 7
P Verständnisproblem main Methode Java Basics - Anfänger-Themen 9
S Klassen Verständnisproblem Konstruktor Java Basics - Anfänger-Themen 7
I e.getMessage(); - Verständnisproblem Java Basics - Anfänger-Themen 6
lesni Vererbung Vererbung - Verständnisproblem Java Basics - Anfänger-Themen 2
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
J Verständnisproblem Methoden-Kettung Java Basics - Anfänger-Themen 3
A Vererbung Verständnisproblem bei Übung Java Basics - Anfänger-Themen 5
E Verständnisproblem Typkonvertierung Java Basics - Anfänger-Themen 4
S OOP Verständnisproblem Umsteiger Java Basics - Anfänger-Themen 22
C Array Verständnisproblem Java Basics - Anfänger-Themen 3
P White-Box-Test Verständnisproblem Java Basics - Anfänger-Themen 11
D : ? Operator -Verständnisproblem Java Basics - Anfänger-Themen 24
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
L Eclipse verlangt "{" nach ";"... Verständnisproblem Java Basics - Anfänger-Themen 5
D charAt(i) verständnisproblem Java Basics - Anfänger-Themen 4
D Verständnisproblem Marken und Schleifen Java Basics - Anfänger-Themen 19
M Verständnisproblem bei Ternären Operanten bzw. Bedingungsoperator Java Basics - Anfänger-Themen 8
T Datentypen Verständnisproblem mit main Methode Java Basics - Anfänger-Themen 3
M Verständnisproblem Threads Java Basics - Anfänger-Themen 7
X Threads und synchronized - Verständnisproblem Java Basics - Anfänger-Themen 3
W ArrayLists: Verständnisproblem bei remove() Java Basics - Anfänger-Themen 2
B Verständnisproblem zu Swing und Methoden Java Basics - Anfänger-Themen 8
A Postinkrement-Verständnisproblem Java Basics - Anfänger-Themen 12
R Iterator Liste, Verständnisproblem Java Basics - Anfänger-Themen 4
1 Verständnisproblem mit Foreach Java Basics - Anfänger-Themen 4
B Verständnisproblem bei Vererbung Java Basics - Anfänger-Themen 3
W generisches Programmieren - Verständnisproblem Java Basics - Anfänger-Themen 4
A Verständnisproblem Nr 2 Java Basics - Anfänger-Themen 14
A Verständnisproblem Java Basics - Anfänger-Themen 6
A Array Verständnisproblem Java Basics - Anfänger-Themen 8
G Verständnisproblem --> JTree Java Basics - Anfänger-Themen 6
M Verständnisproblem mit der Klasse Thread Java Basics - Anfänger-Themen 10
N BufferedReader Verständnisproblem Java Basics - Anfänger-Themen 12
G Verständnisproblem: Code kompelieren und interpretieren Java Basics - Anfänger-Themen 3
S Polymorphie Verständnisproblem Java Basics - Anfänger-Themen 4
G Verständnisproblem Türme von Hanoi Java Basics - Anfänger-Themen 4
G Verständnisproblem Serverinput einlesen. Java Basics - Anfänger-Themen 4
J Array und Schleifen Verständnisproblem Java Basics - Anfänger-Themen 25
G Verständnisproblem Java Basics - Anfänger-Themen 4
N Verständnisproblem: Mehrere Objekte einer Klasse erstellen Java Basics - Anfänger-Themen 2
S SelectionListener + repaint().Verständnisproblem ;) Java Basics - Anfänger-Themen 7
V Verständnisproblem mit Abstrakten zu Konkreten Klassen Java Basics - Anfänger-Themen 7
A Problem mit der Stringgrösse, bzw Verständnisproblem? Java Basics - Anfänger-Themen 14
A Verständnisproblem mit ScrollPanel Java Basics - Anfänger-Themen 3
R Verständnisproblem mit Hibernate Java Basics - Anfänger-Themen 2
T Verständnisproblem mit equals() Java Basics - Anfänger-Themen 4
N datei byte für byte auslesen (verständnisproblem) Java Basics - Anfänger-Themen 2
T Verständnisproblem packages/import Java Basics - Anfänger-Themen 9
Chucky Lineare Listen Programm Verständnisproblem Java Basics - Anfänger-Themen 38
D Verständnisproblem Java Basics - Anfänger-Themen 6
S for Schleifen: Verständnisproblem Java Basics - Anfänger-Themen 15
T Vererbung von Attributen und Methoden, Verständnisproblem Java Basics - Anfänger-Themen 4
bernd while-Schleife: Verständnisproblem Java Basics - Anfänger-Themen 7
S verständnisproblem drucken Java Basics - Anfänger-Themen 11
G GridBagLayout: Verständnisproblem Java Basics - Anfänger-Themen 5
S Ist das noch Insertionsort? Java Basics - Anfänger-Themen 3
S Rekursiver InsertionSort ohne Schleife Java Basics - Anfänger-Themen 7
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
B InsertionSort Java Basics - Anfänger-Themen 12
B Insertionsort verkettete Liste Java Basics - Anfänger-Themen 4
S Insertionsort probleme Java Basics - Anfänger-Themen 2
P Insertionsort Java Basics - Anfänger-Themen 4
S SelectionSort und InsertionSort Java Basics - Anfänger-Themen 1
M insertionsort Java Basics - Anfänger-Themen 9
B insertionsort Java Basics - Anfänger-Themen 12
T InsertionSort Problem Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben