Изменения

Перейти к: навигация, поиск
Алгоритм Эндрю
= Алгоритм Эндрю =
Алгоритм, очень похожий на алгоритм Грехема. Он заключается в том, что мы находим самую левую и самую правую точки, ищем для точек над и под этой прямой выпуклую оболочку Грехемом - {{Acronym|для них начальные точки будут лежать на <tex>\pm inf</tex>, а сортировка по углу относительно далекой точки аналогична сортировке по координате|в этом легко убедиться, подставив в предикат поворота точку с "бесконечной" координатой}}; после этого объединяем две оболочки в одну.
== Описание Алгоритма ==
== Сложность ==
Сортировка точек занимает <tex>O(n \log n)</tex> времени. При обходе каждая точка добавляется в ответ не более одного раза, поэтому сложность двух обходов - <tex> 2 \cdot O(n)</tex>. Суммарное время - <tex>O(n \log n)</tex>.Также можно отметить тот факт, что эндрю в целом работает быстрее, так как использует всего <tex>O(n)</tex> поворотов, в то время как Грехем использует <tex>O(n \log n)</tex> поворотов.
== Ссылки ==
Анонимный участник

Навигация