[
[
[2,33,64,276,1],
[234,5,234,7,34,36,7,2],
[]
]
[
[2,4,5]
]
.
.
.
etc
]
我不是在寻找一个确切的解决方案,因为上面的结构只是一个例子。我正在尝试搜索一个ID,该ID可以嵌套在一组随机排序的ID中的几个级别。
目前我只是进行线性搜索,当每个最深层次都有几百个ID时,需要几分钟才能得到结果。我想知道是否有人可以建议更快的算法来搜索多级随机数据?如果重要的话,我在Python中这样做。
注意:ID始终处于最深层,并且每个分支的层数都是一致的。不确定这是否重要。
另外澄清数据点是唯一的,不能重复。我的例子有一些重复,因为我只是粉碎了键盘。
答案 0 :(得分:3)
通过随机数据进行的最快搜索是线性的。假装你的数据不是嵌套的,它仍然是随机的,所以即使展平它也无济于事。
为了减少时间复杂度,可以增加空间复杂度 - 保存包含ID作为键的dict以及您想要的任何信息(可能是指向包含每个级别ID的列表的索引列表),并更新它每次创建/更新/删除元素时。