From: MeM The Origin on
This is an approximation algorithm for SET-Cover. This algorithm runs in polynomial time.

// Algorithm SetCoverApprox(S):
// Input: A collection S of sets S1, S2,....,Sm whose union is U
// Output: A small set cover C for S
// C <- 0 {The set cover we arer building}
// E <- 0 {The set of covered element from U}
// while E =/= U do
// select a set Si has the maximum number of uncovered elements
// add Si to C
// E <- E U Si
// Returns C.