Есть ли эффективный способ подсчета количества пересечений среди данного набора отрезков?
Предположим, у меня есть n отрезков в общем положении. Как я могу быстро подсчитать, для каждого из моих n сегментов, сколько других n-1 он пересекает?
Я могу сделать это наивно в O (n2Время Я могу найти все пересечения, используя довольно простой алгоритм линии развертки (Bentley-Ottmann) за время O ((n + k) log n), где k - количество таких пересечений, и затем объединить найденные пересечения в кучу на счет.
Я нене нужнонаходить пересечения, хотя; Я просто хочу знать, сколько их. Я неЯ не понимаю, как изменить алгоритм стреловидности, чтобы он был быстрее, поскольку для каждого пересечения необходимо переупорядочить две вещи в дереве, и я могу 'не думаю о каких-либо других методах, которые неЯ страдаю от той же проблемы.
Мне также интересно услышать, как посчитать, сколько всего пересечений.