计算几何-凸包(Convex Hull)

计算几何-凸包(Convex Hull)

凸包(Convex Hull)是计算几何中的一个经典常用的算法。它解决的问题在于给定空间一堆离散的点,计算包含所有点的凸多边形。

凸的定义

凸是指图形内任意两点的连线都不经过图形内部。

计算凸包时要考虑一些特殊情况,比如凸包上多点重叠,凸包上多点共线,通常我们会倾向于用最少的点来描述凸包。

凸包算法伪代码

凸包算法C++实现

算法时间复杂度

由于做了一次排序算法的时间复杂度O(NlogN),两个for循环的时间复杂度为O(N),所以整体的时间复杂度为O(NlogN).

发布于 2019-07-27 15:45