在 c++ 中对插值的坐标进行排序和搜索
Sorting and searching coordinates for interpolation in c++
我需要制作一个最近邻插值程序。
我的输入是一个点的 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 的距离来找到最近的节点。
我发现可能有用的另一件事是哈希表。如果我的向量中的元素数量为 ~96,000,并且我必须执行的插值数量也可能如此之多,那么哪一个会更有效。
我将如何关注索引(如 matlab 排序函数)。在这种情况下,您会推荐哪种排序算法?
谢谢
最近邻搜索是一个标准问题。您可能正在寻找一棵覆盖树。维基百科文章本身的细节很短,但它链接到原始论文和GitHub上的实现。
相关文章:
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 高级选择排序 - 在一次迭代中搜索两个元素
- C++(线性搜索和排序)
- 按类型排序向量并按类型或派生类型搜索
- 在排序文本文件中实现二叉搜索?
- 如何搜索和排序 2D 数组
- C 代码:关于排序的搜索测试示例
- C++ -- 搜索未排序的数组
- treap 中的轮换会违反它的堆排序或二叉搜索树顺序吗?
- 通过在排序向量上使用二叉搜索来定位未排序向量中的元素
- 在排序字符串向量中进行有效搜索
- 在排序静态数组中搜索的最快方法
- 读取每个单词的文件,并使用二叉搜索树(词典)对这些单词进行排序
- 在 c++ 中对插值的坐标进行排序和搜索
- 我如何更快地搜索排序的二进制树
- 为什么对排序向量进行的二进制搜索比STD :: SET FIND慢
- 按字母顺序对数组进行二分搜索和排序 C++.
- 数组列表、行搜索和气泡排序.作业C++
- C++ - 使用关联数组,按值排序后无法按键搜索
- 在二进制搜索树中对对象值排序