我可以计算每个点之间的距离并取最大距离,但这听起来不像是一个非常有效的方法(当点数量多(> 1000)时)。
注意:这是用于iPhone的,所以我没有很多处理能力。
您要计算集合的 直径 。标准技术是首先计算凸包,这可以减少查找凸多边形直径的问题。即使在您没有消除任何要点的情况下,这些添加的信息也正是有效解决问题所需要的。但是,找到凸多边形的直径并不完全是简单的。几篇带有该算法的已发表论文被证明是不正确的。
这是针对该任务的正确O(n)算法的相当可读的讨论(其中n是凸包中的点数)。
另外,还要注意的并不是iPhone 是 有限的; 即使是完全幼稚的算法,精心编写的实现也可以在不到十分之一秒的时间内处理1000个点。当然,使用正确的算法会让您更快=)