A vertex cover is a set of vertices that touches every edge:
The decision version asks: does a cover of size at most k satisfying (1) exist? Vertex cover is the complement of independent set:
so it reduces directly from clique on the complement graph.
Two facts make vertex cover the friendly face of NP-completeness. First, a trivial 2-approximation: greedily pick both endpoints of any uncovered edge. Second, a fixed-parameter tractable exact algorithm running in time
which is fast when the answer k is small, regardless of n.