Вот задача, которую я пытаюсь решить:
Для данного многоугольника A с N вершинами и многоугольника B с M вершинами найдите все пересечения между сегментом в A и сегментом в B.
И A, и B могут быть невыпуклыми.
Пока что я реализовал очевидное решение (проверьте каждое ребро в A с каждым ребром в B, O (M * N)).
Теперь для некоторых полигонов фактически возможно, что есть (почти) M * N пересечений, поэтому наихудший случай для любого такого алгоритма - O (M * N).
Мой вопрос:
Существует ли алгоритм определения точек пересечения двух невыпуклых многоугольников со сложностью в среднем случае, который меньше, чем O (N * M)
Если да, то, пожалуйста, дайте мне название алгоритма, если нет - какой-нибудь ресурс, который доказывает, что это невозможно.