algorithm - 如何搜索影响空间点的对象

标签 algorithm sorting search

假设您有一个大网格。您拥有对点集进行操作的对象。据推测,实现这一点以在运行时具有合理性能的合理方法(即游戏的合理大小的网格),假设内存可用是:

你有指向每个对象的指针,每个对象都对每个点的特定点进行操作。

但是让我们假设网格的精度过高并且您不想为每个点存储指针,大概您会实现类似的东西:

分层拆分网格

下一个问题是,在一组所述子集中找到包含一个点的空间子集的最佳方法是什么?

也许:

可以在整个集合中进行简单的选择搜索 (N),也可以对原点/反向 pos 轴进行索引,然后对匹配的范围进行交集。

关于存储在内存数据结构中的对象属性的索引,我们大概可以最佳地实现:

维护对象属性的 B-Tree 索引 搜索索引并对查询进行交集/并集

所以本质上这是一个关于是否:

  1. 关于从网格请求此类信息,我是否遗漏了什么?
  2. 人们通常如何实现内存中索引(当然它们可能只对范围较小的大型集合有用,考虑到交集会产生巨大的成本?)

Sorted String Table (SSTable) or B+ Tree for a Database Index?

有那个线程。我不明白他们是如何在看起来像数组的东西中存储索引的。他们如何解决插入/转移到(动态/磁盘)阵列中间的 N 成本?

最佳答案

如果我正确理解你的问题,因为你有对象在网格上的一系列点上运行,那么你可以用 2-dimensional interval tree 表示它.

关于algorithm - 如何搜索影响空间点的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500160/

相关文章:

algorithm - 在未排序的列表中查找序列

java - 排序整数列表。与开头相同的元素

python - cormen算法最大子数组问题中的未绑定(bind)局部错误

python - 通过 Python 使用 Spark 准备我的大数据

mysql - 需要有关根据用户选择对图库进行排序的 sql 查询的帮助

c++ - 比std::nth_element更快的东西

algorithm - 在 scala 中使用 actors 进行二进制搜索?

search - 西类牙语字符上的 Solr IOException(电影示例)

python - 检查字符串列表的所有元素是否在字符串中的最快方法

string - 读取文本文件时将十六进制转换为整数