временная сложность алгоритмов поиска сегмента линии или пересечения ребер

Я сделал краткий обзор литературы по проблемам пересечения и расположения линий в вычислительной геометрии. Большинство из них основано на алгоритме плоской развертки. С точки зрения вычислительной сложности мне кажется, что асимптотические алгоритмические границы являются функцией количества отрезков прямой и члена «k», где «k» — количество пересечений между ребрами. Например, один из самых известных алгоритмов имеет временную сложность O(nlogn + "k"), которая чувствительна к выходным данным. Моя проблема заключается в сложности понимания того факта, почему мы не можем избавиться от термина «k», обеспечивая временную сложность. Потому что, если мы посмотрим на другие алгоритмы, например, для задач сортировки, сложность не будет зависеть от того, сколько операций обмена или сравнения выполнено. Это просто функция количества входов. Любые идеи будут полезны.


person justin waugh    schedule 05.04.2013    source источник


Ответы (1)


Если вы хотите выразить сложность в наихудшем случае строго через количество отрезков во входных данных, то вам придется предположить для K максимально возможное количество пересечений (а именно N2 ). Таким образом, алгоритм с временной сложностью O(N log N + K) (например, алгоритм Балабана) можно также назвать O(N2 + N log N) или O(N * (N + log N) ) если хочешь.

person Andrew Durward    schedule 06.04.2013