对于我当前的输入数据,即3d中的点,我使用Morton code来提高访问点列表时的缓存一致性。
我还有一些其他的数据是6D和7D,莫顿代码对于这样的维度来说还是一个很好的技术吗?或者还有其他技巧吗?其他的空间填充曲线技术比morton在3d中更复杂,我想知道人们是否使用6d/7d或更高的替代技术。
最佳答案
您应该尝试行主要或行素数索引。它们还保留了空间局部性,但即使在更高的维度中,它们也可以更有效地计算。
在汇编语言的艺术,第5章,第211-216页中,您可以更深入地阅读行主要和列的主要索引(但在几何意义上)。相关章节可在线获取。
关于你可以考虑的各种空间索引技术,有一个很好的here,包括上面提到的:Samet,H. 2017。对空间数据进行排序。国际地理百科全书。1-11岁。
hilbert和gray index在这里不是一个选项,因为它们的计算速度比morton慢(大多数实现都包含隐式morton编码)。
基本上是适当的莫尔顿(paper)实现,行主/列主索引是最快的。