我正在尝试找出一种算法,用于对立方体区域进行排序(例如由(0,0,0)定义到(1,1,1)),并在给定坐标时尽可能快地返回该区域。数据结构包含区域:(0,0,0)到(100,100,100),(1000,1000,1000)到(1010,1010,1010)和(-50,-50,-50)到(60,-60,60)。因此,在搜索10,10,10时会返回区域1,在搜索(1001,1001,1001)时会返回区域2等。排序、添加、删除时间可能很长。我需要快速的搜索时间;我们可以假设只有整数将被搜索,并且不使用填充每个单元格以引用区域的3D网格解决方案是不可接受的,因为我没有3TB的内存可以用于这个方案:P。我们还可以假设区域不会重叠,如果这能帮助任何人。如果有人有想法,请告诉我。谢谢各位。- Olivier-编辑:仍然太慢了,使用一个结构来保存minX,minY,minZ,maxX,maxY,maxZ以表示一个区域,并将所有这些区域放置在一个列表中,按顺序逐个搜索(通过检查坐标是否大于minX但小于maxX,以及对于每个坐标相同),这仍然太慢O(N)。目前,我正在探索按x,y,z排序的n元树的思路,但我不知道是否是一个好方法。