ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1148
1148
EMPFEHLEN
-
Ich muss euch doch nochmal in Beschlag nehmen und ich hoffe es ist wieder nur ein Schusselfehler

Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
public class InsertionSort { private int[] array; private int l; public void sort(int [] array){ this.array = array; l = array.length; InsertionSort(); } private void InsertionSort(){ int i; int j; for (i = 0; i<array.length;i++); { j = i; int k = array[j]; while (j>0 && array[j-1] > k) { array[j] = array[j-1]; j--; } array[j]=k; } } }
Wenn ich das ganze nun ausführe bekomme ich
java.lang.ArrayIndexOutOfBoundsException
Das bedeutet das das Array scheinbar überläuft, oder die Länge falsch gewählt ist.
Den Fehler erhalte ich in dieser Zeile int k = array[j]; da ich aber vorher ja nur bis zur maximalen Array Length gehe wie kann ich das überlaufen?
-
03.11.10 18:56 #2
- Registriert seit
- Dec 2009
- Beiträge
- 125
Du hast deine For-Schleife in Zeile 18 mit einem ";" abgeschlossen
-
Ein Fehler wurd ja schon genannt..
Die Array-Index-OutOfBounds-Exception kommt übrigens wahrscheinlich von Zeile 24, mit dem array[j-1] Bei j=0 willst du auf das -1-te Element des Arrays zugreifen, was nicht geht.
Ansonsten, was auffällt:
In den Zeilen 15/16 definierst du zwei Integer: i und j.
Dann lässt du die for-Schleife für i durchlaufen, um anschließend j den Wert von i zuzuweisen und dann mit j weiterzumachen.
Warum?
"i" würde doch reichen?
Gruß,
MartinGeändert von Maddin (03.11.10 um 19:47 Uhr)
-
eigentlich sind es nur 2 kleinigkeiten:
- das ; in Zeile 18 muss weg wie sebastianb schon erwähnt hat
- wenn du mit i=1 in der for-schleife anfängst ist die Exception weg und der Sort funktioniert immernoch
Ähnliche Themen
-
InsertionSort
Von cuchulainn im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 2Letzter Beitrag: 30.12.04, 21:55





Zitieren
Login





