
Математика. Пути и Графы. Комбинаторика и перебор
Сортировка
Защита и сокрытие информации. Атаки и взлом
Сжатие информации и кодирование. СRC
Графика и обработка изображений. Фракталы
Поиск в строках, массивах, последовательностях
Разбор выражений. Компиляторы и интерпретаторы
Cтруктуры данных. Хранение информации
AI, ГА, Нейронные сети
Вейвлеты
Игры, и все с ними связанное
Олимпиадные задачи
Разное
Софт: просмотр PS и PDF файлов
 Написать веб-мастеру
Почитать историю сайта
|
Математика:
Вычислительная геометрия:
Построение выпуклой оболочки.
Пока рассматриваем выпуклую оболочку на плоскости. Статья для n-мерного случая имеется в архиве.
Пусть задано некоторое множество точек на плоскости.
Выпуклая оболочка - наименьший выпуклый многоугольник, содержащий данные точки.
Если на них, как на гвозди, натянуть кольцо из резины, то оно, сжавшись, превратится как раз в выпуклую оболочку. Очевидно, стороны выпуклой оболочки - отрезки от одной вершины к другой.
Алгоритм |
Время - все точки внутри |
Время - все точки на оболочке |
Среднее время |
Оптимальность/ примечания |
|
O( n ) |
O( n2 ) |
O( nh ) |
Простой принцип работы. h - количество углов оболочки. |
|
O( n ) |
O( nlogn ) |
O( nlogn ) |
в среднем быстрейший |
|
O( nlogn ) |
O( nlogn ) |
O( nlogn ) |
Время тормозится сортировкой. Сам алгоритм всегда O( n ) |
|
O( n ) |
O( n ) |
O( n ) |
Вводимые точки должны образовывать ломаную без самопересечений. Если это не так, пользуйтесь другими алгоритмами. Впрочем, этого можно добиться за O(n), например, поразрядной сортировкой сначала по x, затем по y |
Архив статей.
 Вверх по странице, к оглавлению и навигации
| |