Java: рассчитать расстояние между большим количеством мест и производительность - PullRequest
2 голосов
/ 03 июня 2010

Я создаю приложение, которое сообщит пользователю, как далеко находится большое количество точек от их текущей позиции.

Каждая точка имеет долготу и широту.

Я прочитал эту статью http://www.movable -type.co.uk / скрипты / latlong.html

и видел этот пост Рассчитать расстояние в метрах, если вы знаете долготу и широту в java

Существует ряд расчетов (50-200), которые необходимо провести.

Если скорость важнее точности этих расчетов, какой из них лучше?

Ответы [ 3 ]

5 голосов
/ 03 июня 2010

это O (n) Не беспокойтесь о производительности. если каждый отдельный расчет не занимает слишком много времени (а это не так).

2 голосов
/ 03 июня 2010

Как сказал Имре, это O (n), или линейный, что означает, что независимо от того, как значения отличаются или сколько раз вы делаете это, вычисления в алгоритме будут занимать одинаковое количество времени для каждой итерации. Тем не менее, я не согласен с тем, что сферический закон косинусов имеет меньше фактических переменных, а вычисления выполняются в алгоритме, что означает, что используется меньше ресурсов. Следовательно, я бы выбрал этот, потому что единственное, что будет отличаться по скорости, это доступные ресурсы компьютера. (примечание: хотя это будет едва заметно, если только на очень старой / медленной машине)

Вердикт, основанный на мнении: сферический закон косинусов

1 голос
/ 03 июня 2010

Две опубликованные вами ссылки используют одну и ту же формулу сферической геометрии для расчета расстояний, поэтому я не ожидаю, что между их скоростью бега будет существенная разница. Кроме того, они не очень дорогие в вычислительном отношении, поэтому я не ожидаю, что это станет проблемой, даже в масштабе нескольких сотен итераций, если вы работаете на современном оборудовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...