Zitat von
alzaimar:
Bevor man vergleicht, muss man dafür sorgen, das man Apfelsorten untereinander vergleicht, und nicht Äpfel mit Birnen.
Ganz Genau.
Zitat von
alzaimar:
Und was die Vergleichsroutinen (CompareText, AnsiCompareText usw.) anbelangt, sollte man hier erst dann ein Finetuning betreiben, wenn man sich auf eine Datenstruktur festgelegt hat.
Ich betrachte es nicht als "Finetuning", sondern als "Äpfel und Birnen". So werden Suchverfahren in Komplexitätstheorie nach Anzahl der Vergleiche in die Komplexitätsklaen aufgeteilt. Es wird dort angenomen, dass der Vergleich zwei Werte in allen Algorithen gleich Kostet. Nähmlich 1 Operation. Es ist sehr wichtig, dass die kosten fürs Vergleichen in allen Algorithmen ungefähr gleich gross sind. (Was bei der Integer vergleich automatisch der Fall war)
Zitat von
alzaimar:
Die TStringlist und der AVL-Baum verwenden die Windows-Funktion 'CompareString', die sehr langsam ist.
Dictionary werwendet auch AnsiUpperCase (behandelt aber auch regionale Buchtaben, wie auch Windows-Funktion 'CompareString') was deutlich langsamer als UpperCase (diese Funktioniert analog zu CompareText/CompareStr) ist.