Range最小/最大查询
Range Minimum/ Maximum Query
我有坐标点(x,y)假设我有10,000个点。现在,当一个新的点作为测试查询给定时,说(p,q)。我需要检查坐标点中的每一个点。如果文本查询的x坐标为py从网上搜索,我知道Rmq-范围最小/最大查询数据结构可以帮助我,但我不确定如何做到这一点。任何关于c++的参考资料或代码帮助都会有很大的帮助。谢谢
如果您的目标是检查该点是否存在于数据集中,那么您可以使用许多非常有用的数据结构来保存数据,每个数据结构都支持非常有效的查找。
对于初学者来说,如果你只需要知道这个点是否存在,你总是可以将所有的点存储在一个标准哈希表或平衡二叉搜索树中。这将分别提供O(1)或O(log n)的查找时间。此外,这些结构在大多数编程语言中都是可用的。
另一方面,如果您打算对数据进行更花哨的操作,例如在数据集中搜索最接近某个测试点的k个点,或者试图找到某个边界区域中的所有点,您可能需要考虑使用kd树或四叉树。这些标准二进制搜索的变体提供了快速查找(O(log n)时间)。kd-tree还支持非常快的k近邻搜索和在边界卷内部的搜索。而且,如果您有实现标准二叉搜索树的经验,那么kd-tree非常容易实现。
希望这对你有帮助!
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 使用递归的数组的最小值.这是怎么回事
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 在二维数组中查找最小值和最大值?
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何找到大于整数的最小数字
- 字节真的是最小可寻址单元吗
- 带自定义比较器的最小优先级队列
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 执行“提升几何图形”最近的查询始终首先按最小距离排序结果
- 数组上的范围最小查询
- Range最小/最大查询
- c++应用程序中的SQL查询最小化/缓存
- 范围最小查询