Hallo zusammen,
zur Zeit probiere ich gerade einen Sotieralgorithmus zu programmieren der ein Feld von Zahlen der Größe nach anordnet.
Hier der Programmcode den ich bis jetzt habe:
Aber der Algorithmus funktioniert aber nicht richtig. Weil er folgende Ausgabe produziert:
26 0 0 0 43 58 was offensichtlich falsch ist.
Sieht jemand den Fehler den ich gemacht habe? - Habe probiert den Code so zu kommentieren das klar wird was ich mir gedacht , falls ich was nicht oder echt schlecht kommentiert habe bitte nachfragen.
zur Zeit probiere ich gerade einen Sotieralgorithmus zu programmieren der ein Feld von Zahlen der Größe nach anordnet.
Hier der Programmcode den ich bis jetzt habe:
Java:
public class test {
public static void main(String[]args){
int[] B = new int[6]; // das Feld das zum "verschieben" gedacht ist
int[] A = new int[6]; // das Feld das sotiert werden soll
A[0]=31;
A[1]=41;
A[2]=59;
A[3]=26;
A[4]=43;
A[5]=58;
for(int i=1;i<6;i++){ // hier wird das Feld der zu sotierende Zahlen durchgegangen
for(int a=0;a<i;a++) // hier soll der aktuelle Wert mit den bisherigen Werten verglichen
{ // werden
if (A[i]<A[a]){ // falls der aktuelle Wert kleiner ist als eines der bereits
for(int x=a;x<i;x++){A[x]=B[x];} // sotierten Werten wird die Schleife angehalten alle
A[a]=A[i]; // Werte in dem Feld B gespeichert die gößer sind als
for(int y=a;y<i;y++){A[y+1]=B[y];} // der aktuelle Wert,der aktuelle Wert wird eingefügt
break; // und der Rest eins nach rechts verschoben
}
}
}
for(int c=0;c<6;c++){ // Hier wird die Ausgabe des
System.out.print(A[c]+"\t");} // sotierten Feldes erzeugt.
}
}
Aber der Algorithmus funktioniert aber nicht richtig. Weil er folgende Ausgabe produziert:
26 0 0 0 43 58 was offensichtlich falsch ist.
Sieht jemand den Fehler den ich gemacht habe? - Habe probiert den Code so zu kommentieren das klar wird was ich mir gedacht , falls ich was nicht oder echt schlecht kommentiert habe bitte nachfragen.