在数据子集之间进行选择

本文关键字:行选 选择 之间 数据 子集 | 更新日期: 2023-09-27 18:16:15

假设{a,b,c}位于它们的子集之间:

SUB={{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}

我想在数组中拥有完整的成员,例如:

array[0]={{a,b,c}}
array[1]={{a,b},{c}}
array[2]={{a},{b,c}}

我的意思是,我想提取不包含任何公共元素的集合一个数组包含所有元素

我想减少复杂度如果我搜索整个,它将是n*n但我认为递归写作可以减少时间复杂度但我不知道如何编写递归的代码。这个例子有3个成员,我希望它有n个成员。

我知道如何提取子集,但我不知道如何用这个条件填充我的数组

在数据子集之间进行选择

递归算法不影响复杂度。任何递归算法都可以用等价的迭代算法(计算理论101)来实现。

除非您有一些先验知识(例如,知道它是排序的,就像在您的示例中一样),否则可能会有所帮助。当然,如果是这样的话,您就别无选择,只能遍历所有这些选项(最坏的情况)。