in reply to CS set coverage question perl

In the worst case, no. We can prove this by an adversary argument.

If the smallest subset is C itself, then suppose you didn't compare S_i and S_j. Your adversary replaces S_j by S_i union a singleton that is not contained in any other set. Since no S_k covers S_i and the extra element in S_j is not contained in any S_k, no S_k covers S_j. Since S_j contains a singleton not contained in any other set, it does not cover any S_k.

Therefore all your comparisons will come out the same with the new and old S_j. But the new S_j should be omitted from the smallest subset since S_i covers it, so your adversary will have tricked your algorithm into producing an incorrect result.