Hallo,
unsere Aufgabe in der Heutigen Informatikstunde bestand darin, ein Programm zu schreiben, was ein mit Zufallszaheln gefülltes Array erzeugt. Dazu sollten wir dann die drei Sortieralgorithmen BubbleSort, StraightSelection und StraightInsertion anwenden.
Nachdem ich BubbleSort ohne weitere Probleme programmiert habe, biss ich mir die Zähne an StraightSelection förmlich die Zähne aus. Hier der Quelltext nachdem mein Lehrer ihn Korriegiert hat:
Warum muss der Kopf der zweiten for-Schleife in Zeile sechs nicht so
aussehen, sondern wie oben??
Meines erachtens nach müsste in der oberen Variante bei dem letzten Durchlauf der for-Schleife eine "java.lang.ArrayIndexOutOfBoundsException: 5" kommen, weil dann i=array.length ist, aber der letzte wert ja nur array.length-1 sein kann.
Ich hoffe ihr versteht mein Problem und könnt helfen
unsere Aufgabe in der Heutigen Informatikstunde bestand darin, ein Programm zu schreiben, was ein mit Zufallszaheln gefülltes Array erzeugt. Dazu sollten wir dann die drei Sortieralgorithmen BubbleSort, StraightSelection und StraightInsertion anwenden.
Nachdem ich BubbleSort ohne weitere Probleme programmiert habe, biss ich mir die Zähne an StraightSelection förmlich die Zähne aus. Hier der Quelltext nachdem mein Lehrer ihn Korriegiert hat:
Java:
public void sortieren(){
int max=0;
int maxIndex=0;
for(int i=0;i<this.anzahl;i++){
for(int j=0;j<this.anzahl-i;j++){
if(array[j]>max){
max=array[j];
maxIndex=j;
}
}
int letzteStelle=this.anzahl-1-i;
int help=array[letzteStelle];
array[letzteStelle]=array[maxIndex];
array[maxIndex]=help;
max=0;
maxIndex=0;
}
}
Warum muss der Kopf der zweiten for-Schleife in Zeile sechs nicht so
Java:
for(int j=0;j<this.anzahl-i-1;j++)
Meines erachtens nach müsste in der oberen Variante bei dem letzten Durchlauf der for-Schleife eine "java.lang.ArrayIndexOutOfBoundsException: 5" kommen, weil dann i=array.length ist, aber der letzte wert ja nur array.length-1 sein kann.
Ich hoffe ihr versteht mein Problem und könnt helfen