寻找凸包
问题描述
给定平面上 n 个点的集合 Q,Q 的凸包是一个凸多边形 P。Q 的点或者在 P 上或者在 P 内,并且连接 P 内任意两点的边都在 P 内。现在要求 Q 的凸包 P。
问题分析
Graham-scan 的基本思想:
- 找到最下最左顶点,其他顶点与它连线。
- 按夹角从小到大排序。
- 夹角最小的开始,寻找凸包点。

是否存在分治的方法?
- 取两极端点,最右最下点 pdr 和最左最上点 pul。
- 有向线 pdrpul 将整个凸包被划分为右凸包和左凸包。
- 对右凸包和左凸包分别进行递归。

算法分析
- 时间复杂度:O(nlogn)