Ho una piccola collezione di oggetti ordinati meno di 50 Mi capita spesso di controllare se un particolare elemento è nella collezione o no,Clojure cercare prestazioni vettore vs set
questo,
(time
(let [a [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]]
(dotimes [i 100000]
(filter (fn [[k]] (= k 15)) a))))
prende 10 ms se tuttavia utilizzo un set,
(time
(let [a (sorted-set 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)]
(dotimes [i 100000]
(a 15))))
Richiede sempre almeno il doppio. Quello che non capisco è che il set dovrebbe essere ottimizzato per le ricerche perché il filtro è più veloce?