I couldn't get the link to the Python version to work, but I wrote my own a while back.
Re:Damn Cool Algorithms, Part 1: BK-Trees
by thesystemis on Monday December 05, 2011 @09:50AM
(#3314763)
here's one in c++ : https://github.com/sholiday/cppBKTree
Here's where the python one above (as well as a different haskell version) lives now: https://github.com/ahupp/bktree
Re:Damn Cool Algorithms, Part 1: BK-Trees
by zszugyi on Monday December 05, 2011 @02:03PM
(#3315921)
IMHO the explanation on the Lisp implementation page is much clearer then the article.
If you hang out in the lisp community you will find this to be a recurring theme - the quality of the community and the textbooks makes lisp a great learning language even if you never write a line of lisp code in production. fwiw as a current outsider the haskell community gives me the same feeling that the discourse in the community is of pretty high quality.
Re:Damn Cool Algorithms, Part 1: BK-Trees
by omaranto on Monday December 05, 2011 @06:42PM
(#3317067)
What an odd thing to say! The Lisp implementation page has no explanation that I could find of either how to build the tree or how to search it. Or did you mean you found the source code to be a clearer explanation?
Edit: The lisp page does have a nice picture of a tree. Did you mean that looking at that picture you could figure out both the algorithm for building the tree and for querying it and the proof that these are correct faster than by reading Nick's blog post?
Lisp: http://cliki.net/bk-tree
Python: http://hupp.org/adam/weblog/?p=103
Ruby: https://github.com/threedaymonk/bktree
Haskell: http://www.robdickerson.net/?p=346
Java: http://code.google.com/p/java-bk-tree/