Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
18. Mär 2010
Du hast ein Copy and Paste fehler, korrigiere bitte:
TFasterHashedStringList = class(TStringList)
in
TFasterHashedStringList = class(THashedStringList)
und CaseSensitive bei den Listen würde ich auf true setzen, da die anderen Verfahren bei diesem Test CaseSensitive arbeiten.
Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
17. Mär 2010
Ganz Genau.
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...
Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
16. Mär 2010
Das sie AVL, SkipList und RBTree in etwa gleich sind wundert mich nicht. Alle haben für das Suchen gleich Kosten von O(log(n))
Die grösten unterschiede ligen in worst case.
Intressanter sind ThashedStringList und Dictionary. Hier kostet das suchen O(1) in normal fall und O(n) in worst case. Die solln die schnellsten sein. Ich frag mich nur halt was für ein Mist CodeGear gebaut hat?!
Es...
Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
16. Mär 2010
Da bin ich eigentlich nicht so sicher.
function TcsStringSkipList.Find(aKey: String; var aInfo: Pointer): Boolean;
var
k : Integer;
p,q : PStrNode;
begin
// q := GetStrNode (aKey, fUpdate);
Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
16. Mär 2010
Hallo webcss,
Sehe ich es richtig, dass bei dir nach Zahlen gesucht wird? Es würde ja die Performance deiner Implementation erklären. In dem Projekt hat man ja Strings verglichen, was natürclich viel mehr Zeit kostet.
Forum: Object-Pascal / Delphi-Language
Delphi
by idealist,
14. Aug 2009
@alzaimar: Danke, Super vergleich.
Oft ist der Schlüssel eindeutig, d.h man Braucht keinen AnsiUpperCase oder AnsiCompareText. Dann ändern sich die Ergebnisse im Bereich bis ca 30.000 Einträge. So wird sortierte Liste bis zu 2,5 schneller als Dictionary (Hashtable) und Dictionary wird schneller als Skiplist.
Wenn es möglich ist, zuerst alle Daten in die Liste zu speichen und danach zu...