用于检查集合A是否在比线性时间更快的集合B的子集的算法

vol*_*lni 5 algorithm set subset

是否有算法(最好是恒定时间)来检查集合A是否是集合B的子集?

创建数据结构以促进此问题不计入运行时.

Kei*_*all 1

好吧,您将必须查看 的每个元素A,因此它必须至少是 大小的线性时间A

使用哈希表可以轻松实现算法O(A+B)(将 的元素存储B在哈希表中,然后查找 的每个元素A)。我认为除非您了解 . 的一些高级结构,否则您无法做得更好B。例如,如果B按排序顺序存储,则可以O(A log B)使用二分搜索。