The randomized version of this algorithm is also fun: repeatedly find an edge that is not yet covered, select one of the two end points at <i>random</i>, and add it to S.<p>It's a nice exercise to show that the randomized algorithm is also a 2-approximate algorithm, i.e., the size of S is at most twice the size of S_{OPT}, in expectation.
I refer you to Bogosort. [1] One of the simplest interesting randomized algorithms.<p><a href="https://en.wikipedia.org/wiki/Bogosort" rel="nofollow">https://en.wikipedia.org/wiki/Bogosort</a>