Thema: optimierung

Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: optimierung

  Alt 7. Mär 2013, 08:27
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?

Geändert von Der schöne Günther ( 7. Mär 2013 um 08:30 Uhr)
  Mit Zitat antworten Zitat