Перейти к содержанию

Задача о пересечении отрезков

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Задача о пересечении отрезков заключается в определении, пересекаются ли какие-либо два отрезка из заданного списка на плоскости.

Простые алгоритмы проверяют каждую пару отрезков. Однако если нужно проверить большое число отрезков на пересечение, задача становится возрастающе неэффективной, поскольку большинство пар отрезков при обычном вводе не лежат близко друг от друга. Наиболее общий и более эффективный путь решения этой задачи для большого числа отрезков заключается в использовании алгоритма заметающей прямой, в котором мы воображаем себе прямую, проходящую через отрезки, и отслеживаем пересечения отрезков с помощью структуры данных, основанной на двоичных деревьях поиска. Алгоритм Шамоса — Хауи[1] применяет этот принцип для решения задачи нахождения пересечения отрезков, как описано выше. Алгоритм Бентли — Оттманна работает по тому же принципу и находит список всех пересечений за логарифмическое время на одно пересечение.

См. также

Примечания

  1. Shamos, Hoey, 1976, с. 208.

Литература

Ссылки