C++ 在c+中为插值排序和搜索坐标+;

C++ 在c+中为插值排序和搜索坐标+;,c++,algorithm,sorting,search,vector,C++,Algorithm,Sorting,Search,Vector,我需要做一个最近邻插值程序 我的输入是一个点的x,y和y坐标,例如x=.5,y=.3,z=.1 输出将是在最近的可用点处测量的速度。由于我有四个向量x,y,z和V,程序将查找最近的节点,比如说它是x[5239],y[5239],z[5239](对应于x=.501 y=.299 z=.1),并输出V[5239] 我在考虑设置几个参考点(我们称它们为p和q)。我的想法是计算所有节点相对于p和q的距离。然后根据节点到p和q的距离对向量进行排序(为此,我需要保留原始索引的引用,以便能够找到V[I])。之

我需要做一个最近邻插值程序

我的输入是一个点的x,y和y坐标,例如x=.5,y=.3,z=.1

输出将是在最近的可用点处测量的速度。由于我有四个向量x,y,z和V,程序将查找最近的节点,比如说它是
x[5239],y[5239],z[5239]
(对应于x=.501 y=.299 z=.1),并输出
V[5239]

我在考虑设置几个参考点(我们称它们为p和q)。我的想法是计算所有节点相对于p和q的距离。然后根据节点到p和q的距离对向量进行排序(为此,我需要保留原始索引的引用,以便能够找到
V[I]
)。之后,我可以使用二进制搜索,使用给定点相对于p和q的距离来找到最近的节点

我发现另一个有用的东西是哈希表。如果向量中的元素数约为96000,并且必须执行的插值数可能也有那么多,那么哪一个更有效

我将如何关注索引(如matlab排序函数)。在这种情况下,您会推荐什么样的排序算法


谢谢

这是一个标准问题。你可能正在寻找一个合适的人选。Wikipedia的文章本身在细节上非常简短,但它链接到了原始文章和GitHub上的一个实现。

我认为您最好使用。注意,特定点的“最近邻居”可能不在同一个单元中,因此需要考虑相邻的单元。也可能是一个很好的来源。我会用你的帖子开始编码,如果有错误,那么可以查看它。非常感谢你,这些信息非常有用