If I want to make N repeated (i.e. millions of) 2D nearest-neighbor queries on a pointset of size M, is traveling down into a KD-Tree most efficient or are there better ways to do this? (e.g. Voronoi?)
Right now I'm building a KD-Tree of size M, so with N queries on that I end up using N log M time. Can I do better?