Я разрабатываю программу моделирования. Есть стада животных (гну), и в этом стаде мне нужно найти одно животное, которое находится вне стада.
На рисунке ниже зеленые точки удалены от стада. Именно эти моменты я бы хотел найти быстро.
Конечно, есть простой алгоритм для решения этой проблемы. Подсчитайте количество точек в окрестности каждой точки, а затем, если эта окрестность пуста (точка 0 в ней), то мы знаем, что эта точка находится далеко от стада.
Проблема заключается в том, что этот алгоритм неэффективен. У меня есть миллион очков, и применение этого алгоритма на каждом из миллионов точек очень медленно.
Есть ли что-то, что было бы быстрее? Возможно, используя деревья?
Изменить для @amit: мы хотим избежать этого случая. Была выбрана группа зеленых точек в левом углу, хотя они должны не, потому что это не одно животное, которое находится далеко от стада, это группа животных. Мы ищем только одно животное от стада (а не группы).