Den größten Wert in einer verketteten Liste zu suchen ist an sich keine komplexe "Berechnung".
Wächst die Liste auf das zehnfache an, wird es (im Groben) auch zehn mal so lange dauern - Diese Operation (das Suchen des größten Werts) hat eine lineare Laufzeit.
Würdest du aus dieser Liste nicht den größten Wert haben wollen sondern den in der Mitte, ist das immer gleich schnell - Egal wie groß deine Liste ist.
Weiteres zur Laufzeit mit anschaulichen Beispielen findest du z.B. bei
Zu deinem konkreten Problem:
Wenn deine Eingabedaten wirklich absolut unsortiert vorliegen und du nur
einmal den größten Wert suchen willst, kann man da nicht viel machen (oder ich stehe ebenfalls auf dem Schlauch). Die meiste Zeit wird höchstwahrscheinlich für das Parsen der Fließkommazahl aus dem String sein - So etwas ist nicht mit ein paar CPU-Takten erledigt!
Hast du nicht die Möglichkeit, die Daten wenigstens direkt als Zahlen einzulesen und nicht als Strings?
Gibt es genaueres? Vielleicht liest du ständig neue Blöcke von der Platte anstatt den ganzen Kram wenigstens einmal komplett in den Hauptspeicher zu schaufeln?