반응형
그레이엄 스캔
-
Graham's Scan(convex hull 알고리즘)알고-리즘/Convex Hull 2024. 3. 23. 13:04
1. 개요 convex hul에 속한 모든 정점들을 찾는 알고리즘으로, $O(n\log{n})$시간의 시간 복잡도를 가진다. 효과적으로 이전 값을 탐색하고 삭제하기 위해 stack 구조를 활용하여 알고리즘이 진행된다. 3차원 공간에서는 결과를 얻을 수 없다..는 단점이 있다. 컴퓨터에서는 floating point로 각도를 계산해야 하니... 오차가 꽤나 많이 생긴다는 단점도 있다. 2. 알고리즘 가장 작은 y좌표값을 갖는 정점을 시작점 $P$로 잡는다. 만약 같은 y좌표를 갖는 정점이 여러개라면 x 값이 가장 작은 것을 선택한다. 정점 목록을 $P$와 x축이 이루는 각도에 따라 정렬한다. 직접 각도를 계산할 필요는 없다. x축과 이루는 각이므로, 직선의 기울기, 내적으로도 쉽게 판별이 가능하다. 만약 ..