【发布时间】:2019-03-09 14:33:24
【问题描述】:
假设我们在数据集中有 n 个数据点。对于给定的点,我们可以根据到该点的(度量)距离对其他 n-1 个点进行排序。
如果我们有一个度量距离函数(例如 L 范数),那么为数据集中的每个点计算此值的最有效方法是什么?
天真的方法似乎是依次对每个点的距离列表进行排序,每个点的成本为 O(n log n),即所有点的 O(n^2 log n)。考虑到每次都必须遍历完整的树,使用 k-d 树似乎并没有更好。
例如,有没有更好的方法可以利用三角不等式?
【问题讨论】:
-
我认为您理解正确。 O(n^2 log n)。但是如果我理解正确的话,这里不能使用简单的 BST 吗?
-
也许 O(n^2 log n) 对于获取包含 n^2 项的序列的成本并不太高
标签: algorithm sorting data-structures nearest-neighbor kdtree