Я хотел бы найти быстрый алгоритм, чтобы найти x ближайших точек к данной точке на плоскости.
На самом деле мы имеем дело с не слишком многими точками (между 1000 и 100 000), но мне нужны x ближайших точек для каждой из этих точек. (где х обычно будет между 5 и 20.)
Мне нужно написать это на C #.
Немного больше контекста о сценарии использования: эти точки являются координатами на карте. (Я знаю, это означает, что мы не совсем говорим о плоскости, но я надеюсь избежать решения проблем проекции.) В конечных точках, которые имеют много других точек, близких к ним, должны отображаться красным цветом, точки, которые не слишком много точки рядом с ними должны отображаться зеленым цветом. Между этими двумя крайностями точки находятся на градиенте цвета.