Ein optimierter Algorithmus ist mir nicht bekannt. Würde ebenfalls deinen Pseudo Code nun vorschlagen. Wo ist nun genau dein Problem, denke dass ist mehr als schnell genug. Einfach innerhalb einer Schleife abfragen ist doch sofort erledigt.
Aber gerade bei einer Funktion, welche ein paar tausendmal pro Sekunde aufgerufen wird, lohnt sich eine Optimierung immer.
Dass man viel Rechenpower hat, sollte ja nicht dazu fuehren, damit schlampig umzugehen...
Und bevor ich das Rad neu erfinde, frage ich, ob das schon jemand vor mir gemacht hat.
Es geht uebrigens um die Skalierung eines dynamischen Farbhistogramms.
edit: Ich habe neulich in einer XY Index Berechnung (welche ca. 200.000x pro Sekunde aufgerufen wird) ein einziges unnoetiges "if" innerhalb der Schleife entfernt, was den Programmablauf um 3 Prozent(!) beschleunigt hat.
Vielleicht ist es ratsam, nicht im Nachhinein das gesamte Arrayzu durchsuchen, sondern bereits den Maximalwert beim Befüllen des Arrays herauszufinden.