Forum: Algorithmen, Datenstrukturen und Klassendesign
by Gausi,
17. Mär 2022
Ups, sorry, das habe ich anscheinend überlesen.
Aber vielleicht als Ergänzung: Das haut natürlich besonders stark in dieser Zeile des Originalcodes rein, wenn AStartIdx = 0 ist.
RotateList(LTmpList, (LTmpList.Count - 1) - AStartIdx);
Dann wird die Liste mit 1000 Einträgen 1000 mal im Speicher hin und her kopiert, bevor mit der Überprüfung auf Gleichheit der beiden Listen begonnen wird.
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Gausi,
17. Mär 2022
Ich würde hier nicht mit Profiling ansetzen, um irgendwo ein paar Takte zu sparen, sondern an dem Algorithmus an sich ...
Wenn ich nicht komplett danebenliege, würde ich an der (ziemlich teuren) RotateList-Funktion ansetzen - die kann doch so ziemlich ersatzlos weg!
Diese Rotation um den StartIndex wird doch nur benutzt, damit du in der Schleife ListA mit ListB vergleichen kannst. Warum...