Array wird überschrieben

Hallo zusammen, bin noch ein Java-Anfänger mit folgendem Problem

Ich fülle ein Array mit Werten aus einer Excel-Tabelle, was funktioniert.
Jetzt möchte ich den höchsten Wert ermitteln mittels Bubblesort.
Den höchsten Wert erhalte ich auch, nur wird das Array sortiert, was nicht sein darf.
Was stimmt bei meiner Parameterübergabe nicht? Die Sortierung ist doch lokal.
Java:
private float temperaturMax;
private float[] temperaturen = new float[73];

// Füllt Array temperaturen mit Excel-Werten
readCSV();
// Aufruf Bubblesort

temperaturMax = sortTemperaturen(temperaturen);
....

private static float sortTemperaturen(float[] tempSort){
   float temp;
   int sortLength = 23;

   for(int i=0; i<sortLength; i++) {
     for(int j=0; j<sortLength-i; j++) {
       if(tempSort[j]>tempSort[j+1]) {
         temp=tempSort[j];
         tempSort[j]=tempSort[j+1];
         tempSort[j+1]=temp;
       }
     }
   }
   return tempSort[sortLength];
}

Vielen Dank

Gruss
Thomas Hellstern
 
Zuletzt bearbeitet von einem Moderator:
Nur noch eine kleine Anmerkung: Den höchsten Wert ermitteln mittels Bubblesort macht keinen Sinn, wenn die Sortierung nicht gewünscht ist.

Um den höchsten Wert zu ermitteln muss man nur einmal durch das Array durchgehen (Bubblesort geht öfters durch das Array bzw. Teile des Arrays) und es sind keine Tausch-Operationen notwendig. Es reicht eine einzelne Zuweisung des bisher höchsten wertes bzw. dessen Position - wie man es halt gerne haben möchte.

Konrad
 

Zurück
Oben