1
[
   [
      [2,33,64,276,1],
      [234,5,234,7,34,36,7,2],
      []
   ]
   [
      [2,4,5]
   ]
   .
   .
   .
   etc
]

我不是在寻找一个确切的解决方案,因为上面的结构只是一个例子。我正在尝试在一组随机排序的 ID 中搜索可以嵌套多个级别的 ID。

目前我只是在做一个线性搜索,当每个最深的级别都有几百个 ID 时,需要几分钟才能得到结果。我想知道是否有人可以建议一种更快的算法来搜索多个级别的随机数据?如果这很重要,我会在 Python 中执行此操作。

注意:ID 始终处于最深级别,并且每个分支向下的级别数是一致的。不确定这是否重要。

还要澄清数据点是唯一的,不能重复。我的例子有一些重复,因为我只是砸键盘。

4

1 回答 1

3

对随机数据的最快搜索是线性的。假装您的数据不是嵌套的,它仍然是随机的,因此即使将其展平也无济于事。

为了降低时间复杂度,您可以增加空间复杂度——保留一个包含 ID 作为键的字典以及您想要的任何信息(可能是指向包含每个级别的 ID 的列表的索引列表),并在每次更新时更新它创建/更新/删除一个元素。

于 2012-06-08T14:19:03.170 回答