shas19's blog

By shas19, history, 4 years ago, In English,

Given N points I need to find Closest point among all the given points to all the given points in plane in less than O(n^2).

The distance used is Euclidean distance.

I came to know that for any metric distance we can use kd-Tree to solve such problems. (I may be wrong)

I also came to know that for chebychev distance the problem can be solved using orthogonal range querying and manhattan distance problem can also be converted into chebychev distance problem.

Is there any way to solve Euclidean distance problem more easily with some other trick?

 
 
 
 
  • Vote: I like it
  • +11
  • Vote: I do not like it

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by shas19 (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Voronoi diagram? :D

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

You can use Voronoi diagram to solve the problem. Nearest points are neighbour cells in it. But this solution considered to be true hell.

Another one solution is to choose some random set of directions and for all point try to find the answer among closest points in these directions.

Also, take a look: link

There also was problem on SPOJ or something like that, but I don't remember it :)

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Can you explain randomized solution in more details ?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +4 Vote: I do not like it

    The randomized solution has been described in this post.

    As for the problem on SPOJ, I think it's FAILURE

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Deleted.