Hallo, ich habe hier ein kurzes Java Programm, das mir ein Array mit dem Bubble Algorithmus sortiert. Was mich hier komplett verwirrt ist, das in der Methode sort in der zweiten for-Schleife die länge des Arrays mit minus 1 am ende stehen gelassen wird. Ich verstehe nicht warum man das macht und was das für ein zweck haben soll? Ich habe zum testen in der main mir eine eigene for Schleife geschrieben um mir das einzeln ausgeben zu lassen, jedoch wird dann hier der letzte Eintrag im Array abgeschnitten, hää? Kann mir das vielleicht jemand ganz simple erklären warum das ganze so ist und warum ich in der zweiten for-schleife der sort Methode die minus 1 dran hängen muss? Ich verstehe auch nicht wieso ich in der ersten for-Schleife der sort Methode j=1 setze?, ich weiss das ich die Liste einmal komplett durchlaufen muss aber das Array beginnt doch bei 0? Danke schon mal im Voraus!
Java:
public static void main(String[] args) {
int[] a = {3, 5, 0, 2, 1, 4};
for(int i = 0; i<a.length-1; i++){
System.out.println(a[i]);
}
}
public static int[] sort(int[] a) {
for (int j = 1; j < a.length; j++) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
int tmp = a[i];
a[i] = a[i + 1];
a[i + 1] = tmp;
}
}
}
return a;
}