algorithm - 在范围搜索中,如何使用Morton命令?

  显示原文与译文双语对照的内容

如果有数据集,其中键为 3位,用 3签名的64位整数表示。 我想使用( 排序) key-value 存储来存储它们,其中键是字节 array ( 但我可以指定一个比较器) 。 i interleaving interleaving interleaving array/Morton order,我想我可以把所有这些点变成一个字节的,就像在中一样,如何计算一个 3D Morton数字

除了提取单个点,可以更简单地在没有with顺序的情况下进行搜索。 我将定义A 和B 作为所有坐标最低的盒角,并且所有坐标都是最高的。

现在我的问题是:

在逻辑上,C 和B 之间的of数也是C 和B 之间的of数。 ( 那不是Morton的点)?

如果 1为0,则A 和B 可以为"圆形",以保证包含该值的值?

假设 1或者 2是可以能的,搜索返回还是指向那个框的外部,我必须从这个框中删除。 这个"错误集"有多大( 取决于搜索的大小或者位置)?

整数是否被签名导致问题的事实? 如果是这样,是不是有一个?

综上所述,使用Morton数字只是解决实际问题的一种可行方法: 如何有效地在 3D 个整数空间中搜索,当 3D 个点必须映射到一维值时? i,by,performing,DB,DB,DB,DB,DB,performing,performing,performing,performing,performing,performing,performing,performing,performing,performing,performing 。

时间: 原作者:

4 ) 是,符号会引起问题,但很容易解决。

将x 。y 和z的符号位加为1,然后再创建Morton数。

为什么要使用( 。使用 1维有符号字节代替):

-1中的为 11111111

0 中的为 00000000

1 中的为 00000001

你需要的顺序是 -1,0,1,但当前的二进制顺序为 0,1,-1.

-1 XOR 10000000 = 01111111

0 XOR 10000000 = 10000000

1 XOR 10000000 = 10000001

现在你的二元顺序是正确

原作者:
...