# Fehler bei der Sortierung eines Arrays



## Globemaster (28. Mai 2009)

Hi,
ich habe folgendes Problem: Ich muss einen Array mit einem eigenen Verfahren von groß nach klein sortieren. Dies sieht bis jetzt so aus:


```
public class sortArray {

	
	public static void main(String[] args) {

		int[] zahlenfolge = {82,70,73,70,69,4,12,37,22,198};
		
		int max = 0, tausch = 0;
		
		for (int i = zahlenfolge.length; i >= 0; i--){
			max = i;
			for(int j = 0; j < i; j++){
				if (zahlenfolge[j] > zahlenfolge[max]){
					max = j;			
				}
			}			
			tausch = zahlenfolge[max];
			zahlenfolge[max] = zahlenfolge[i];
			zahlenfolge[i] = tausch;	
		}
		System.out.println(zahlenfolge[0]);
		System.out.println(zahlenfolge[1]);
		System.out.println(zahlenfolge[2]);
		System.out.println(zahlenfolge[3]);
		System.out.println(zahlenfolge[4]);
		System.out.println(zahlenfolge[5]);
		System.out.println(zahlenfolge[6]);
		System.out.println(zahlenfolge[7]);
		System.out.println(zahlenfolge[8]);
		System.out.println(zahlenfolge[9]);		

 	}

}
```

Leider wird mir dieser Fehler ausgegeben

```
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
	at sortArray.main(sortArray.java:11)
```

Ich weiß leider nicht woran das liegt. Habe schon diverses ausprobiert und weiß leider nicht mehr weiter. Ich weiß nur, dass es irgendwas mit der schleife zu tun haben muss.

Vielen Dank schonmal für eure Mühe!

Globemaster


----------



## tfa (28. Mai 2009)

Die Indizes eines Arrays gehen von 0 bis length-1. Du musst deine Schleife also bei zahlenfolge.length-1 beginnen lassen.


----------



## SlaterB (28. Mai 2009)

stell dir vor, du hast ein Array der Länge 1, deine Schleife 
for (int i = 1; i >= 0; i--){
läuft dann von 1 bis 0,
also zwei Indexe, 1 und 0, in einem Array der Länge 1?!


----------



## Globemaster (28. Mai 2009)

Vielen lieben Dank für die super schnelle Hilfe und die Erklärung! Funktioniert jetzt wunderbar.

Globemaster


----------



## Landei (29. Mai 2009)

Zum Ausgeben des Arrays noch ein kleiner Tipp:

```
for(int i : zahlenfolge) {
   System.out.println(i);
}
```

oder


```
System.out.println(java.util.Arrays.toString(zahlenfolge));
```


----------

