2012-10-01 81 views
2

这是关于2d的空间哈希...(对不起,如果它不是空间哈希,我在说)
我们将x和y坐标转换为表示桶(组)的数组中的索引。
所有论文/文章我看过,和我使用:
int grid_cell = x/cell_size + y/cell_size*width;

在AS3中,那会是更有效率预先计算每一个x和y和存储结果的指数在2个载体如 XMAP:矢量。 <int>包含x/cell_size和yMap:Vector。
int grid_cell = xMap[x] + yMap[y]; // grid being the array of buckets

简而言之::<INT> Y/cell_size *宽度
然后使用检索它从矢量检索项目比如在AS3 Y/cell_size *宽度计算更快??
我自己的基准测试结果波动很多,我决定,这是一个性能关键功能。哈希函数的改进

+0

首先 - 欢迎来到stackoverflow和一个不错的第一篇文章。其次,你说你自己的基准测试结果波动很大?你是否尝试过运行函数来计算它,然后运行它。 1000次使用其他方法进行1000次检查?我相信数组方法总是会更快,但是它会占用更多的内存,但是我没有完成基准测试。 – h2ooooooo

+0

可能取决于向量的长度 –

+0

所有的坐标都是整数吗?或者你还需要散列中间值? –

回答

0

除非矢量真的非常大,否则查找值比计算它们要快。