我有多个未分类的2D点 P0 , P1 , P2 ,..., Pn 这些都是共线的。我想尽可能快地获得距离最远的外部点 * P_0 * 和 * P_n * 。
P0 P1 P2 P3 Pn
|-----------|--------|----|--------------------|
我不知道怎么做但是用蛮力算法计算所有距离而不是对点进行排序。有什么想法吗?
答案 0 :(得分:1)
如果点是共线的,那么您可以通过直接比较它们的坐标来比较它们。您无需计算距原点或点之间的距离。而且您不需要对整个列表进行排序以获得最小值和最大值。
的伪代码:
min = p0
max = p0
for each point p
if p.X < min.X || p.Y < min.Y then min = p
if p.X > max.X || p.Y > max.Y then max = p
您可以稍微调整算法:除非Y
值完全相同,否则无需检查X
。