在数据子集之间进行选择

时间:2011-11-30 06:16:53

标签: c# c++ arrays search sorting

假设我的子集之间有{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个成员。

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

1 个答案:

答案 0 :(得分:0)

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

除非你有一些先验知识(例如,知道它已经分类,就像在你的例子中一样,可能会有所帮助。如果是,当然),你别无选择,只能通过所有这些(在最坏的情况)。