Предположим, у нас есть n точек данных в наборе данных. Для данной точки мы можем заказать каждую из n-1 других точек на основе ее (метрического) расстояния до этой точки.
Каков наиболее эффективный способ вычислить это для каждой точки в наборе данных, если у нас есть метрическая функция расстояния, такая как L-норма?
Наивный подход, по-видимому, состоит в том, чтобы сортировать список расстояний для каждой точки по очереди, по цене O (n log n) за точку, то есть O (n ^ 2 log n) для всех точек. Использование kd-дерева кажется не лучше, учитывая, что каждый раз необходимо проходить полное дерево.
Есть ли лучший способ, например, воспользоваться преимуществом неравенства треугольника?