如果每个点的每个坐标都是一个有理数的形式,则表明平面中 n 点的凸包可以在 O(n)时间内计算p / q,p和q的有界值。
注意:这是一个家庭作业问题。我可以想到以某种方式避免扫描所有点使用Jarvis March。也许这可以通过向固定方向投射光线(使用理性条件)来检查下一个点存在的位置来完成。
答案 0 :(得分:5)
不要使用Jarvis March,因为它的时间复杂度为O(nh)
。在最坏的情况下,h
可能与n
一样大。请注意,h
是船体上的点数。
相反,您应该使用时间复杂度为O(nlogn)
的{{3}}。在Graham扫描算法中,时间复杂度主要是对所有点进行排序。请注意,基于比较的排序算法的时间复杂度为O(nlogn)
。
在您的作业问题中,您可以使用Graham scan而不是任何基于比较的排序算法来击败O(nlogn)
的上限,因为假设点的坐标都是有界的。请注意,当要排序的输入是有界时,可以使用基数排序,其复杂度为O(n)
。
有关各种凸包算法的比较,请参阅radix sort。