So, ich lese, dass die count
Operation ist O (1) für eine Clojure Vektoren, Listen und Karten.Was ist die Leistung von `count` auf einem Clojure-Set?
(count [1 2 3]) ;=> 3
Aber ist es auch O (1) für eine Clojure eingestellt? Ich stelle mir vor es wahrscheinlich ist, aber ich bin nicht wirklich sicher, wie Sie herausfinden. Ich hatte eine kurze Lektüre von http://clojure.org/data_structures#Data%20Structures-Sets, konnte aber die Informationen dort nicht sehen.
Danke, dass ich an der richtigen Stelle zeigen suchen! Ich kann jetzt die "Gezählt" -Schnittstelle sehen, die O (1) -Leistung für "count" anzeigt, und das PersistentSet implementiert es. '(instance? clojure.lang.Count # {: a: b:: c}) => true' –
Ja' Gezählt' ist ein nützliches Marker-Interface, nach dem gesucht werden kann. Beachten Sie jedoch, dass es nicht unbedingt * O * (1) Verhalten garantiert - Sie müssen die tatsächliche konkrete Klassenimplementierung überprüfen, um sicher zu sein. Theoretisch könnte jemand "schlecht" mit O (n^2) Leistung oder schlechter umsetzen ... – mikera