Hallo,
ich bin gerade an der nächsten Übung dran. Leider verstehe ich nicht was ich hier falsch gemacht habe. Folgender Fehler tritt auf:
Array Index out of Bounds
Was ich da herausinterpretieren kann ist, dass mein Array zu klein sei. Das Problem ist, dass Array muss auf 10 Stellen begrenzt sein, da die Aufgabe lautet:
Schreiben Sie ein Programm, mit dem 10 eingegebene Integer-Zahlen aufsteigend sortiert werden können. Verwenden Sie dafür den MergeSort-Algorithmus, wie er unten beschrieben ist. Zuerst sollen 10 ganze Zahlen eingegeben werden können und in einem Array gespeichert werden. Der Benutzer soll solange zur Eingabe aufgefordert werden, bis er dem 10 gültige Zahlen eingegeben hat. Danach sollen alle Arraywerte ausgegeben werden, damit man einen Überblick bekommt, welche Zahlen der Reihe nach eingegeben wurden und zu sortieren sind.
Hier mein bisheriger Code:
ich bin gerade an der nächsten Übung dran. Leider verstehe ich nicht was ich hier falsch gemacht habe. Folgender Fehler tritt auf:
Array Index out of Bounds
Was ich da herausinterpretieren kann ist, dass mein Array zu klein sei. Das Problem ist, dass Array muss auf 10 Stellen begrenzt sein, da die Aufgabe lautet:
Schreiben Sie ein Programm, mit dem 10 eingegebene Integer-Zahlen aufsteigend sortiert werden können. Verwenden Sie dafür den MergeSort-Algorithmus, wie er unten beschrieben ist. Zuerst sollen 10 ganze Zahlen eingegeben werden können und in einem Array gespeichert werden. Der Benutzer soll solange zur Eingabe aufgefordert werden, bis er dem 10 gültige Zahlen eingegeben hat. Danach sollen alle Arraywerte ausgegeben werden, damit man einen Überblick bekommt, welche Zahlen der Reihe nach eingegeben wurden und zu sortieren sind.
Hier mein bisheriger Code:
Java:
public class sort
{
public static void main ( String[] args )
{
System.out.println ("");
System.out.println ("Dieses Programm Sortiert Zahlen!");
System.out.println ("");
int a,b,c,d,e,f,g,h,i,j;
do {
System.out.println("Geben sie bitte ganze Zahlen ein die > 0 sind:");
a= In.readInt();
b= In.readInt();
c= In.readInt();
d= In.readInt();
e= In.readInt();
f= In.readInt();
g= In.readInt();
h= In.readInt();
i= In.readInt();
j= In.readInt();
}
while (a<0 | b<0 |c<0|d<0|e<0|f<0|g<0|h<0|i<0|j<0);
int [] sorti ={ a,b,c,d,e,f,g,h,i,j};
for(int z=0; z<sorti.length; z++)
{
System.out.print(sorti[z]+" ");
}
if (sorti.length > 1) {
int center=sorti.length / 2;
int [] linkerTeil=new int [center];
int [] rechterTeil=new int [sorti.length-center];
for (int z=0;z<=center -1;z++){
linkerTeil[z]=sorti[z];
}
for (int z=center;z<=sorti.length;z++){
rechterTeil[z]=sorti[z];
}
}
System.out.println(sorti);
}
}