Pour la carte triée de clojure, comment trouver l'entrée ayant la clé la plus proche d'une valeur donnée?Recherche des clés les plus proches d'une valeur donnée pour les cartes triées clojure
par exemple. Supposons que je
(def my-map (sorted-map
1 A
2 B
5 C))
Je voudrais une fonction comme
(find-closest my-map 4)
qui renverrait (5, C), puisque c'est l'entrée avec la clé la plus proche. Je pourrais faire une recherche linéaire, mais puisque la carte est triée, il devrait y avoir un moyen de trouver cette valeur dans quelque chose comme O (log n).
Je ne trouve rien dans l'API qui rende cela possible. Si, par exemple, je pouvais demander la cinquième entrée sur la carte, je pourrais concocter une fonction comme celle que je veux, mais je ne peux pas trouver une telle fonction.
Edit:
donc apparemment trié-carte est basée sur une classe PersistentTreeMap implémenté en Java, qui est un arbre rouge et noir. Donc, cela semble vraiment être faisable, au moins en principe.
+1. Merci, c'est très utile. –