АЛГОРИТМ ГРЭХЕМА PYTHON

Алгоритм Грэхема - это алгоритм нахождения выпуклой оболочки в двумерном евклидовом пространстве. Он был разработан Р. Л. Грэхемом в 1972 году и является одним из наиболее эффективных известных алгоритмов.

Суть алгоритма заключается в следующем:

  1. Находим точку с наименьшей y-координатой. Если таких точек несколько, берем самую левую из них.
  2. Сортируем все остальные точки относительно полярного угла, который они образуют с выбранной точкой. Если две точки имеют одинаковый угол, более близкая к текущей точке должна быть первой.
  3. Стек сначала помещается сначала две точки.
  4. Для каждой следующей точки мы удаляем из стека все точки, которые образуют правый поворот с предыдущей точкой и добавляем эту точку в стек. Это продолжается до тех пор, пока все оставшиеся точки не будут проверены.

Алгоритм Грэхема может быть реализован на Python в несколько строк кода:

p = sorted(points, key=lambda x: (-x[1], x[0]))hull = [p.pop()]for i in range(len(p)): while len(hull) > 1 and (hull[-1][0]-hull[-2][0])*(p[i][1]-hull[-2][1]) <= (hull[-1][1]-hull[-2][1])*(p[i][0]-hull[-2][0]): hull.pop() hull.append(p[i])

الخوارزميات 2 - كل شيء عن البارادايم

Graham Scan Algorithm

C3. Выпуклая оболочка: алгоритмы Джарвиса, Грэхема (Сергей Егоров) MSK

Graham Scan: Background \u0026 Python Code

ВСЯ СЛОЖНОСТЬ АЛГОРИТМОВ ЗА 11 МИНУТ - ОСНОВЫ ПРОГРАММИРОВАНИЯ

Вычислительная геометрия. Алгоритм Грэхема. Видео урок.

Greedy algorithm или как написать жадный алгоритм на Python

Алгоритм Грэхэма

BLGPG-DC8995C8EFB6-24-09-19-05

Новые материалы: