Source: https://www.enib.fr/~deloor/materielPedagogique/AlgoRep/sd2002.pdf