如何有效地查找数组列表中的哪个数组具有成员。
上下文用于消息代理。我有一个队列列表,需要定期将其内容推送给消费者,但由于队列数量可能很大,我想快速找出其中有哪些元素。
我目前唯一的解决方案是基本上保留一个单独的列表,跟踪哪个数组仍然包含其中的内容,但对备选方案感到好奇,它只会让我感到害怕;)
我正在使用javascript,但我希望能更全面地了解我应该研究哪种算法。
答案 0 :(得分:0)
我将使这种与语言无关,并使我的答案简短明了。
维护并行数据结构:另一个存储数组ID的集合,但仅存储非空的数组。
如果您在第二组中使用哈希集,则插入和删除时间不会发生变化。这是人们可以要求的最有效的事情,这种类型的混合数据结构是必要的AFAICT。
然后,您可以通过迭代第二组来查找所有非空数组。