Source: http://www.info.univ-angers.fr/~basseur/Algo/L1_Compl_Algo_1314_Cours1.pdf