平面点集的凸包
2015-07-08 20:40
225 查看
概念:给定一个平面的点集q,求覆盖所有点的最小凸多边形(在多边形边上,或内部)。
主要求解思想:
采用分治算法
如图,先找出y坐标最大和做小的点,并入此多边形的顶点集(因为是y坐标最大和最小,所以此直线左边和右边的凸包合起来还是凸包);
对直线左右的点进行递归处理:
如直线左边,先找到一个离直线最远的点p并入多边形顶点集,连接p和ymin和ymax(因为是离直线d最远的点, 所以直线a左边的凸包和b上边的凸包合起来还是凸包,如图:
然后分别对直线a左边和直线b上边的点递归处理。
最后得到多边形的顶点集。
算法时间复杂度:0(n2)
注:图片截取于https://class.coursera.org/algorithms-001/lecture/81
主要求解思想:
采用分治算法
如图,先找出y坐标最大和做小的点,并入此多边形的顶点集(因为是y坐标最大和最小,所以此直线左边和右边的凸包合起来还是凸包);
对直线左右的点进行递归处理:
如直线左边,先找到一个离直线最远的点p并入多边形顶点集,连接p和ymin和ymax(因为是离直线d最远的点, 所以直线a左边的凸包和b上边的凸包合起来还是凸包,如图:
然后分别对直线a左边和直线b上边的点递归处理。
最后得到多边形的顶点集。
算法时间复杂度:0(n2)
注:图片截取于https://class.coursera.org/algorithms-001/lecture/81
相关文章推荐
- BZOJ2829信用卡凸包
- 凸包问题 hdu1392 Surround the Trees
- 【计算几何】POJ 1113
- [BZOJ1069][SCOI2007][凸包][旋转卡壳]最大土地面积
- 两个while循环求凸包 poj2187 poj1113
- [SHTSC 2012] 信用卡凸包
- HDU 4946 凸包 判重点 多校练习赛8 1002
- POJ 2187 Beauty Contest (凸包)
- POJ 1113 Wall (凸包)
- POJ 2187 —— 凸包 + 旋转卡壳 求多边形的直径
- HDU 4946 Area of Mushroom 凸包
- HDU2108-Shape of HDU
- 寻找凸包的Graham算法
- HDOJ1348凸包模版
- HDOJ1392凸包模版
- HDU/HDOJ2202凸包模版+枚举
- POJ2007 凸包
- POJ 1113 凸包模版题
- POJ 1228 凸包
- POJ 3358 凸包求面积