Methoden selectionsort

toblo

Mitglied
irgendwie funz mein sectionsort algorithmus nich und es entsteht auch immer eine arrayindexoutofboundsexeption... wo ist der fehler??

Java:
  public void selectionsort(int[] reihe){

   int asdf = reihe.length;

   while (asdf>=0){
    int maxZahl = 0;

//suche größte zahl
    for (int i=1; i<asdf;i++){
     if(reihe[i] > reihe[maxZahl]){
       maxZahl = i;
     }
    }
//tauschen
     int temp = reihe[asdf];
     reihe[asdf] = maxZahl;
     maxZahl = temp;

    asdf--;

   }


  }
}
 
Zuletzt bearbeitet von einem Moderator:

sung

Mitglied
int asdf = reihe.length;

int temp = reihe[asdf]; ---------- throws arrayindexoutofboundsexeption!
Die Index von Array sollen von 0 bis length - 1 sein.

asdf--; -------------- vorsicht hier, index soll nicht -1 sein;
 

toblo

Mitglied
wie muss ich es nun ändern??

weil die while schleife gibt doch an, dass

while (asdf>=0)

asdf größer als 0 sein muss
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
z.B. so
Java:
int tmp = reihe[--asdf]
asdf größer als 0 sein muss
Ööööööhm, was hat das mit dem Fehler zu tun? Die IndexOutOfBoundsException bekommst du, weil du ein Element deines Arrays ansrepchen willst (Index asdf), welches nicht vorhanden ist, weil der größte Index (asdf - 1) ist (wohingegen natürlich asdf Elemente enthalten sind).
 
Zuletzt bearbeitet:
S

Spacerat

Gast
[JAVA=6] asdf = reihe.length - 1;[/code]und[JAVA=9] for (int i=1; i<=asdf;i++){[/code]
 

Ähnliche Java Themen

Neue Themen


Oben