二进制树使用int数组作为键(欧几里德距离)?

时间:2012-05-05 20:25:09

标签: c++ binary-tree euclidean-distance

编写了一个二进制搜索树,用于在船上存储数据,搜索的关键是它们的声学特征。

搜索树时,我想要返回具有正确签名的船舶或与搜索到的签名最匹配的船舶。 (通过查看哪艘船具有最接近的欧几里德距离)。

我遇到的问题是如何比较实际数值以外的签名。这意味着所执行的任何搜索都是顺序的而不是二进制的?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您正在做的事情是多维度的nearest-neighbour search。你只能用一棵二叉树来解决这个问题;你需要一些空间分区结构。

如果数组长度N很小(单个数字),则可以使用2 ^ N-ary树(quadtree,octree,...)作为二叉树的推广。

适用于更高维度的流行选择是Kd-tree