如果每个点的每个坐标都是有理数,则在O(n)时间内采用凸壳

时间:2013-02-06 17:28:17

标签: algorithm computational-geometry convex-hull

  

如果每个点的每个坐标都是一个有理数的形式,则表明平面中 n 点的凸包可以在 O(n)时间内计算p / q,p和q的有界值。

注意:这是一个家庭作业问题。我可以想到以某种方式避免扫描所有点使用Jarvis March。也许这可以通过向固定方向投射光线(使用理性条件)来检查下一个点存在的位置来完成。

1 个答案:

答案 0 :(得分:5)

不要使用Jarvis March,因为它的时间复杂度为O(nh)。在最坏的情况下,h可能与n一样大。请注意,h是船体上的点数。

相反,您应该使用时间复杂度为O(nlogn)的{​​{3}}。在Graham扫描算法中,时间复杂度主要是对所有点进行排序。请注意,基于比较的排序算法的时间复杂度为O(nlogn)

在您的作业问题中,您可以使用Graham scan而不是任何基于比较的排序算法来击败O(nlogn)的上限,因为假设点的坐标都是有界的。请注意,当要排序的输入是有界时,可以使用基数排序,其复杂度为O(n)

有关各种凸包算法的比较,请参阅radix sort