Source: https://www.labri.fr/perso/dorbec/vieux-enseignements/INF111/2-Algo.ppt.pdf