Ничего себе.Десятимерные векторы?Что вы делаете с ними?
Полагаю, я бы начал с уменьшения каждого вектора до единичной длины, т. Е. До точек на гиперсфере, а затем использовал бы некоторый алгоритм "поиска ближайших соседей" (NNS), такой какkD-дерево (k-мерное двоичное дерево), R-дерево, Best Bin First и т. д.
Вероятно, невозможно решить эту проблему быстрее, чем O (n log n), потому что, если бы вы могли решить эту проблему быстреекроме того, вы могли бы решить более простую «задачу с ближайшей парой точек» быстрее, чем текущая нижняя граница O (n log n).
Как отметил Том Вомак, грубая сила O (n ^2) алгоритм потребует меньше фактического времени настенных часов, чем эти более сложные алгоритмы для «небольших» объемов данных, и, похоже, «n = 10000» относительно мало для 10 измерений.