我想知道曼哈顿距离。这是非常具体的,(我不知道这是一个好词)简单。例如,当我们在此指标中给出一组 n 点时,很容易在线性时间内找到两个最远点之间的距离。但是,找到两个最近的点也很容易吗?
我听说,存在用于在任何度量中找到两个最近点的通用算法,但它很复杂。我想知道在这种情况下(曼哈顿指标)是否可以使用这个距离的特殊属性并提出一个更简单的算法,这将在实现中更友好?
编辑:飞机上的 n 点,并为所有点说出 -10 ^ 9< = x,y< = 10 ^ 9 。
答案 0 :(得分:0)
假设您正在讨论飞机上的n
点,请在坐标中找到x
和y
坐标的最小值和最大值。创建一个大小为maxX-minX
x maxY-minY
的矩阵,这样所有点都可以由矩阵中的单元格表示。使用n
给定点填充矩阵(例如,不会填充所有单元格,例如设置NaN
)。扫描矩阵 - 矩阵中相邻的填充单元格之间的最短距离(可能有几个这样的对)。