Z-order curve space-filling

161 阅读1分钟

Introduction

z-order、Lebesgue curve、Morton space-filling curve、Morton order or Morton code map等函数用于将多维数据映射到一个维度,同时能够保留数据点的位置。

OI选手应该比较熟悉,一维化降低复杂度的手段会比较常用 算法中最常用的可能是根据行顺序对数组一维化,

z-order curve

z-order的想法是通过交错坐标值的二进制位计算压缩坐标,那么结果可以表示为quadtree或octree的深度优先遍历所得到的顺序。

image.png

比如上图这个七行七列的矩阵,蓝色的表示x轴对应的值,红色的则表示在y轴的坐标值,很明显的交错位

z-order可以用于构造四叉树(2D)或八叉树(3D)

这里以四叉树为例

image.png

image.png

参考博客/文献

Z-order curve - Wikipedia