Ich habe hier ein Problem mit diesem Sortieralgorithmus:
Also, ich denke ich verstehe hier alles soweit, aber wenn ich das Programm ablaufen lasse, steht Folgendes als Ergebniss:
hm0
hm1
hm2
hm3
hm4
hm5
hm3
ja
Ausgabe der Sortierung:
1 3 4 5 7 8 9
Mein Problem liegt nun an der Stelle "hm3"
Warum Springt das Programm von der Zahl 5 auf die 3 ?? Also von "hm5" auf "hm3"
Die Zahlen geben ja "k" an und ich verstehe einfach nicht wie er von der 5 auf die 3 kommt.
Das Programm tut genau das, was es soll aber ich blicke da noch nicht ganz hinter, warum er das tut.
Java:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int[] zh = {1,3,4,7,8,9,5};
for (int i= 0; i < zh.length; i++) {
int x = zh[i];
int k = 0;
while ((k < i) & (x >= zh[k]))
k++;
System.out.println("hm" + k);
if (k != i) {
for (int j = i; j > k; j--)
zh[j] = zh[j-1];System.out.println("ja");
zh[k] = x;
}
}
System.out.println("Ausgabe der Sortierung:\n");
for (int i = 0; i < zh.length; i++)
System.out.print(zh[i]+" " );
}
// TODO code application logic here
}
Also, ich denke ich verstehe hier alles soweit, aber wenn ich das Programm ablaufen lasse, steht Folgendes als Ergebniss:
hm0
hm1
hm2
hm3
hm4
hm5
hm3
ja
Ausgabe der Sortierung:
1 3 4 5 7 8 9
Mein Problem liegt nun an der Stelle "hm3"
Warum Springt das Programm von der Zahl 5 auf die 3 ?? Also von "hm5" auf "hm3"
Die Zahlen geben ja "k" an und ich verstehe einfach nicht wie er von der 5 auf die 3 kommt.
Das Programm tut genau das, was es soll aber ich blicke da noch nicht ganz hinter, warum er das tut.