В моей программе у меня есть набор точек. Для целей масштабирования я ищу два наиболее удаленных друг от друга узла, а затем вычисляет коэффициент, с помощью которого можно умножить все координаты так, чтобы максимальное расстояние было равно некоторому предопределенному, которое я определяю.
Алгоритм, который я использую, чтобы найти две точки, наиболее удаленные друг от друга, однако, проблематичен для больших наборов точек, поскольку он O(n^2)
; псевдокод (расстояния, которые уже были рассчитаны, пропущены):
for each point in points:
for each other point in points:
if distance between point and other point > max
max = distance between point and other point
Есть ли что-то быстрее?